#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main(){
int v[5];
int a[5][5];
int i = 0, j = 0;
for (i = 0; i < 5; i ){
v[i] = 0;
for (j = 0; j < 5; j ){
a[i][j] = 0;
cout << "A[" << i << ", " << j << "] = " << endl;
cin >> a[i][j];
v[i] = v[i] a[i][j];
}
v[i] = v[i] / 5;
}
for (i = 0; i < 30; i ){
cout << "v[" << i << "] = " << v[i] << endl;
}
}
當我洗掉v[i] = 0第一個回圈下方的行時,代碼運行但回傳非常大的數字。我不明白這是怎么回事。感謝任何幫助。
編輯:感謝您的所有回復。我想我明白為什么我投了反對票。澄清一下,這是針對初學者的課程,我們獲得了語言的基本知識,主要是為了訓練邏輯。這個問題本身非常荒謬,因為它要求我們將陣列宣告為 int,盡管答案因整數除法而失真。
uj5u.com熱心網友回復:
在 C 中初始化一個值就像int v[5];保留空間一樣。它不會將值初始化為 0 或其他東西。任何東西都可能在這五個索引中。無論發生在那個地址空間中。
uj5u.com熱心網友回復:
這是因為您的陣列中有垃圾值。您的陣列大小為 5,但您嘗試迭代直到第 30 個值。希望有幫助!
uj5u.com熱心網友回復:
當您洗掉v[i]=0時,這會導致v[I]=未定義,這就是v[I]看起來像很長的數字的原因。嘗試初始化將用于連續求和的每個變數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/526410.html
標籤:C
下一篇:重新定義虛函式呼叫
