可以这样运行scanf吗?
我对你的评论做了一些修改。 我想把每个数字分配给不同的变量可以这样运行scanf吗?,c,scanf,C,Scanf,我对你的评论做了一些修改。 我想把每个数字分配给不同的变量 我想这就是你想要做的: #include <stdio.h> int main(){ int **x; int i, a, b, c, d, e; int *vars[] = {&b, &c, &d, &e, &a}; x = vars; for(x = vars; *x != &a; x++){ scanf("%d",
我想这就是你想要做的:
#include <stdio.h>
int main(){
int **x;
int i, a, b, c, d, e;
int *vars[] = {&b, &c, &d, &e, &a};
x = vars;
for(x = vars; *x != &a; x++){
scanf("%d", *x);
}
printf("%d, %d, %d, %d\n", b, c, d, e);
return 0;
}
得到同样的结果
对于printf函数:1%d表示需要在引号后列出1个整数,2表示2,依此类推
绝对可以阅读阵列,它们节省了很多时间
还请注意,中的第二个命令
fori=1;i=a;我++
将a的值赋给i是毫无意义的。这也总是会导致for循环内容运行,除非它没有按照Filipe Gonçalves指出的那样初始化而失败。程序有未定义的行为。当你可以使用数组时,为什么会这样做?变量不是这样工作的。查找数组。数组[5][a,b,c,d,e]array[j]//在scanf中?请阅读一本关于C语言的书。如果你还有问题,请张贴用有效C语言编写的代码。如果不是因为两个小的技术错误,我会投票支持你的答案。首先,您需要扫描%d,&a[i];注意scanf的第二个参数中的运算符用法地址。第二,fori=1;i=a;i++只是UB,因为a从来没有被初始化过-所以,准确地说,你不能说循环会一直运行-它是UB,任何事情都可能发生。谢谢你的更正。已进行编辑。感谢提供解决方案。我不能给你名誉:
#include <stdio.h>
int main(){
int **x;
int i, a, b, c, d, e;
int *vars[] = {&b, &c, &d, &e, &a};
x = vars;
for(x = vars; *x != &a; x++){
scanf("%d", *x);
}
printf("%d, %d, %d, %d\n", b, c, d, e);
return 0;
}
int main() {
int numList[5];
int i;
for(i = 0; i < 5; i++) {
printf("Input number %d ",i);
scanf("%d",&a[i]);
}
printf("Your numbers: ");
for(i = 0; i < 5; i++) {
printf("%d, ",a[i]);
}
printf("\n");
}
printf("Your numbers are: %d,%d,%d,%d,%d.\n",a[0],a[1],a[2],a[3],a[4]);