【发布时间】:2020-11-03 14:55:19
【问题描述】:
这应该是一个简单的程序,首先询问用户方阵的大小(从 1 到 10),然后要求用户将数字输入到数组中,最后打印出输入数字的数组。
但是,现在输入诸如大小为 2 之类的值,值为 1、2、3、4
而不是获取数组
1.00 2.00
3.00 4.00
打印出来,它会打印出一堵 0.00 的长墙,其中某处有正确的值。
据我了解,在使用像 void someFunct(int arr[][MAX]); 这样的多维数组声明辅助函数时需要给出界限,在这种情况下,我将最大大小声明为 10。但如果我没记错的话,问题可能是从我那里做错了什么?
我正在测试的代码:
#include <stdio.h>
int numInput(char[]);
void fillArray(double[][10],int);
void printArray(double[][10],int);
int main() {
// GET SQUARE ARRAY SIZE
int n = numInput("Insert the dimension of the square array(1-10): ");
// FILL THE SQUARE ARRAY A[n][n]
double A[n][n];
fillArray(A, n);
// PRINT OUT ARRAY A[n][n]
printArray(A, n);
return 0;
}
int numInput(char text[]){
int num;
do{
printf("%s", text);
scanf("%d", &num);
}while(num < 1 || num > 10);
printf("\n");
return num;
}
void fillArray(double arr[][10],int size){
int i, j;
for(i = 0; i < size; i++){
for(j = 0; j < size; j++){
printf("Insert A[%d][%d]: ", i, j);
scanf("%lf", &arr[i][j]);
}
}
}
void printArray(double arr[][10],int size){
int i, j;
for(i = 0; i < size; i++){
for(j = 0; j < size; j++){
printf(" %.2lf ", arr[i][j]);
}
printf("\n");
}
printf("\n");
}
【问题讨论】:
-
^^^^^ 同样适用于
printArray,以防这并不明显。