运行不出来啊怎么做呢

img


输入十个数字后回车没反应 输入第十一个就变成一堆乱码,应该是这部分有错就是输入传入10个数字到数组里这

scanf("%d", &a[i]);
这里%d后面不要空格

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

你的程序可能出现了缓冲区溢出的情况,导致程序崩溃或输出乱码。为了解决这个问题,你可以使用fgets函数代替scanf函数来读取用户输入的数字,同时使用sscanf函数将读取的字符串转换为数字,并将其存入数组中。具体代码如下:

#include <stdio.h>

#define MAX_NUMS 10

int main()
{
    int nums[MAX_NUMS];
    char input[20];

    for (int i = 0; i < MAX_NUMS; i++) {
        printf("请输入第%d个数字:", i+1);
        fgets(input, sizeof(input), stdin);
        if (sscanf(input, "%d", &nums[i]) != 1) {
            printf("输入的不是数字,请重新输入!\n");
            i--;
        }
    }

    printf("输入的数字为:");
    for (int i = 0; i < MAX_NUMS; i++) {
        printf("%d ", nums[i]);
    }
    printf("\n");

    return 0;
}

在这个代码中,我们使用fgets函数来读取用户输入的数字,并将其存储在一个字符数组input中。然后,我们使用sscanf函数将input中的字符串转换为数字,并将其存储在数组nums中。如果用户输入的不是数字,则会提示用户重新输入。最后,我们输出输入的数字。

希望这个思路能够帮助你解决问题。

GPT生成的、执行如下、你可以参考一下它的思路、不一定准确:

img