我要做的是只在多维数组的一维中读取/存储数据,如下所示:
#include <stdio.h>
int main(void){
int array [5] [10];
int i;
for (i = 0; i < 5; i++) {
printf("Reading %d number in the first dimension.\n", i+1);
scanf("%d", &array [i]);/*Trying to store data just on 1st dimension */
}
printf("\n");
for (i = 0; i < 5; i++){
printf("%d\n", array [i]); /*Trying to print the data read*/
}
return 0;
}
结果发现程序意外地输出了乱七八糟的数据:
2673556
2673576
2673656
2673566
2673756
我该如何正确地访问这个单一维度?
最佳答案
我想你的意思是
#include <stdio.h>
#define M 3
#define N 10
int main(void){
int array [M] [N];
int i, j;
i = 0;
for ( ; i < N; i++) {
printf("Reading %d number in the first dimension.\n", i+1);
if ( scanf("%d", &array [0][i]) != 1 ) break;
}
printf("\n");
for ( j = 0; j < i; j++){
printf("%d\n", array[0][j]); /*Tring to print the data read*/
}
return 0;
}
或以下
#include <stdio.h>
#define M 3
#define N 10
int main(void){
int array [M] [N];
int i, j;
i = 0;
for ( ; i < M; i++) {
printf("Reading %d number in the first dimension.\n", i+1);
if ( scanf("%d", &array [i][0]) != 1 ) break;
}
printf("\n");
for ( j = 0; j < i; j++){
printf("%d\n", array[j][0]); /*Tring to print the data read*/
}
return 0;
}
第一个程序填充数组的第一行,而第二个程序填充数组的第一列。
关于c - 在C中从多维数组的一维打印数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30691513/