我使用 C,我应该将数字(不知道有多少)输入格式化为一列,而不将它们存储到整数数组中。我不明白为什么我的代码无法读取输入并输出它。请帮忙。
#include <stdio.h>
#include <stdlib.h>
int main() {
int i;
char *nums[400];
for (i=0; i<nums; i++) {
scanf(nums[i]);
printf( "%.*s", 3, nums[i] );
}
return 0;
}
最佳答案
您有一个包含 400 个指针的数组,但您从未初始化过它们。相反,您可以声明一个二维数组:
char nums[400][4];
然后您尝试使用 nums
作为 for
循环的限制。你真正想要的是nums
中的元素数量,即sizeof(nums)/sizeof(nums[0])
;或者您可以定义一个宏来指定数组的大小。
接下来,您省略了 scanf()
的格式字符串参数。
#include <stdio.h>
#include <stdlib.h>
#declare SIZE 400
int main()
{
int i;
char *nums[SIZE][4];
for(i=0; i<SIZE; i++){
scanf("%3s", nums[i]);
printf( "%.*s", 3, nums[i] );
}
return 0;
}
关于c - 输入字符串数组不会显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39380364/