gpt4 book ai didi

c - 这段在 C 语言中无限运行的代码是什么?

转载 作者:行者123 更新时间:2023-11-30 21:15:29 26 4
gpt4 key购买 nike

在此程序中:

#include<stdio.h>

int a[5],c=0;

int main()
{
printf("Enter no\n");
scanf("%d",&a);
for(int i=0;a[i];i=+2) {
printf("%d ",a[i]);
}
return 0;
}

我想输入12345并获得输出1 3 5,但程序永远不会终止。我该怎么做?

最佳答案

老实说,你的代码到处都是,看起来你只是在胡乱猜测:

  1. 您无法将 int 数组传递给 scanf(),要求它读取一个 int,并期望它像这样将多位数的所有数字单独放入各个元素中。您要么需要读取字符串,要么读取单个 int 并自行提取数字。

  2. 变量c未使用。

  3. 你的for循环根本没有意义。即使您已经填充了数组 a 的所有元素,它仍然没有意义,而且您还没有。

这是代码的合理版本,读取字符串:

#include<stdio.h>

int main(void) {
char a[6];

printf("Enter no\n");
fgets(a, 6, stdin);

for (int i = 0; i < 5; i += 2) {
printf("%c ", a[i]);
}

putchar('\n');

return 0;
}

输出:

paul@local:~/Documents/src/sandbox$ ./num
Enter no
12345
1 3 5
paul@local:~/Documents/src/sandbox$

请注意,这不会检查用户是否确实输入了五个字符,而您的程序应该这样做。

关于c - 这段在 C 语言中无限运行的代码是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25952049/

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