gpt4 book ai didi

c - 为什么我的程序在输入整数后崩溃? - C

转载 作者:行者123 更新时间:2023-11-30 19:06:18 25 4
gpt4 key购买 nike

我对 C 编码非常陌生,我想知道为什么会这样崩溃?当我输入一个值并按回车键后,我的程序立即崩溃。我记得有时您会在 scanf 行中将 & 与数组一起使用,有时则不会。所以当我删除 & 它立即崩溃。我不确定如何解决此问题,希望得到帮助。

我想要实现的目标:

  • “编写一个程序,要求用户输入以 0 结尾的整数序列(最后一个数字为 0),并在一行中打印输入的所有数字。”
  • 在我输入其他变量之前程序崩溃了。我还没有完成编码,但由于它总是立即崩溃,所以我无法进一步。

     int main () {
    int ru[1000];
    int read;
    int nums;
    int counts;

    printf("Enter integers, press 0 to end user input \n");

    while (nums>0) {
    scanf("%d",&ru[nums]);

    if (nums==0)
    printf("%d ", ru[nums]);
    }

    system("pause>nul");
    return 0;
    }

最佳答案

正如一些人已经指出的那样,您永远不会在代码中的任何位置为 nums 赋值,而是在多个地方使用它。

您应该填充nums,当它大于零时(如果您还想包含负整数,这可能不等于零),将其值存储到您的数组中。您可以使用另一个变量(我选择了您已经声明的 read 变量)来跟踪您在数组中的位置,确保它首先初始化为 0。

一旦 while 循环终止,无论是通过 nums 为零还是填充数组,您都可以打印出您收集的数字。

int main (void) {
int ru[1000];
int read=0;
int nums;
int counts;

printf("Enter integers, press 0 to end user input \n");

scanf("%d",&nums);
while ((nums>0)&&(read<1000)) {
ru[read++]=nums;
scanf("%d",&nums);
}
for(counts=0;counts<read;counts++) {
printf("%d ",ru[counts]);
}
printf("\n");

system("pause>nul");
return 0;
}

关于c - 为什么我的程序在输入整数后崩溃? - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48345704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com