【发布时间】:2025-11-22 01:00:03
【问题描述】:
在 for 循环中使用 scanf,如果有超过 1 个循环,我应该将输入存储在哪里?尝试使用数组,但总是失败。
假设:
Please enter number of octets: 3
Please enter octet: 1
Please enter octet: 2
Please enter octet: 3
那么输入应该存储在数组中,但它不起作用。对于控件,我 printf v[2] 应该是 3,但它是另一个数字。
#include<stdio.h>
#include<limits.h>
int main()
{
int c;
int v[c];
printf("Please enter number of octets:\n");
scanf("%d", &c);
if ( (c > 1) && (c < CHAR_MAX))
{
for ( i = 1; i <= c; i++)
{
printf("Please enter octet:\n");
scanf("%d", x);
v[c]=x;
}
printf("v[2]: %d\n", v[2]);
}
return 0;
}
【问题讨论】:
-
提供完整代码,我们可以试试运行它!!
-
scanf("%d", &v[i]); -
为什么是
CHAR_MAX而不是INT_MAX? -
启用所有编译器警告 - 这将节省时间。
-
@chux 可以进行完整性检查,但使用
CHAR_MAX常量来做这件事很奇怪,这有点误导。
标签: c