可以这样运行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]);