问题描述
- 多个全局数组出现,定义的时候赋值问题
-
#include <iostream> #include <iomanip> #include <cmath> using namespace std; int A[9], B[9], C[9]; int main() { int n,j,k; k = n; for (j = 0; j < n; j++) { B[j] = k; //如果数组是全局变量,则会将第一个值B[0]赋给A[9] k -= 1; } cout << "初始: A:"; for (j = 0; j < 10; j++) ## cout << A[9] << " "; ****//这里输出的A[9]和B[0]的值一样,为什么不是0啊,如果是main()里面声明的数组的话,A[9]就是零了**** cout << " B :"; for (j = 0; j < 10; j++) { if (B[j] <= 0) cout << setw(2) << " "; else cout << setw(2) << B[j]; } //编译器VS2015
解决方案
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int A[9], B[9], C[9];
int main()
{
int n,j,k;
k = n; //n没有初始化,会造成未知错误。
for (j = 0; j < n; j++)
{
B[j] = k; //如果数组是全局变量,则会将第一个值B[0]赋给A[9]
k -= 1;
}
cout << "初始: A:";
for (j = 0; j < 10; j++)
## cout << A[9] << " "; ****//这里输出的A[9]和B[0]的值一样,为什么不是0啊,如果是main()里面声明的数组的话,A[9]就是零了****
cout << " B :";
for (j = 0; j < 10; j++)
{
if (B[j] <= 0)
cout << setw(2) << " ";
else
cout << setw(2) << B[j];
}
解决方案二:
C语言数组下标0~n-1,所以定义A[9],那么使A[9]未知的。
时间: 2024-08-02 17:19:02