gpt4 book ai didi

check_order 的 C 程序无法正常工作

转载 作者:行者123 更新时间:2023-11-30 16:31:09 25 4
gpt4 key购买 nike

我正在使用在线 GeeksforGeeks 来学习如何编码。我刚刚开始学习,但由于某种原因,当我的输入总和超过 3616 时,编译器返回垃圾。任何专业人士可以向我解释为什么以及如何改进我的代码吗?

例如。输入:1 2 3 4 5 0 输出:递增顺序//输入总和< 3616

输入:1 2 3614 0 输出:不升序//输入总和> 3616

这就是问题:

编写一个程序 check_order.c 来读取正整数列表。只要输入的整数按升序排列,程序就会继续询问下一个正整数。当输入数据不按升序排列或输入值为零时,输入结束。然后,程序应报告输入数据是否按升序排列。您可以假设至少会输入一个正整数。如果列表中只有一个正整数,我们将按升序处理该列表。您可以将所有代码编写在 main() 函数中。

#include <stdio.h>  

int main(void){
int input, input2;
do{
input2 = input;
scanf("%d", &input);
printf("Enter positive integer: %d\n", input);
}

while(input> input2);

if(input< input2){
if(input == 0){
printf("Data are in increasing order.");
}
else{
printf("Data are not in increasing order.");
}
}
else{
printf("Data are in increasing order.");
}
return 0;
}

已解决。谢谢大家!!! :)

最佳答案

当你不初始化输入时,它会得到一个垃圾值。它可以是正值,也可以是负值——而且你永远不知道是哪个值。为了避免这种情况,您必须给出一个初始化值,这样您几乎总是可以完全控制变量。始终建议为变量设置初始化值。

#include <stdio.h>  

int main() {
int input = 0, input2;
do {
input2 = input;
scanf("%d", &input);
printf("Enter positive integer: %d\n", input);
}
while(input > input2);
if (input < input2) {
if(input == 0) {
printf("Data are in increasing order.");
}
else {
printf("Data are not in increasing order.");
}
}
else {
printf("Data are in increasing order.");
}
return 0;
}

关于check_order 的 C 程序无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50756453/

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