【发布时间】:2020-10-29 10:44:15
【问题描述】:
所有其余的代码都可以工作,但说到最后一点,即数字的顺序,代码要么告诉我它是递增形式,要么两者都不是。你能帮我理解为什么吗?
#include <stdlib.h>
#include <stdio.h>
int main(){
int n;
int number;
int positive, negatives, null;
int even, odd;
int cont;
int rest;
int previous_number;
int increasing;
int decreasing;
increasing=1;
decreasing=1;
positive=0;
negative=0;
null=0;
even=0;
odd=0;
printf("insert a number\n");
scanf("%d",&n);
for(cont=1;cont<=n;cont++){
printf("insert a number\n");
scanf("%d",&number);
这里的代码通过检查数字是正数、负数还是空来工作
if(number>0){
positive++;
}else if(number<0){
negatives++;
}else{
null++;
}
这里也看看它是偶数还是奇数 休息=数字%2;
if(rest==0){
even=even+1;
}else{
odd=odd+1;
}
这里的代码不起作用
if(number>previous_number){
decreasing=0;
}else{
if(number<previous_number){
increasing=0;
}
else{
increasing=0;
decreasing=0;
}
previous_number=number;
}
printf("the positive numbers are: %d \n",positive);
printf("the negative numbers are: %d \n",negative);
printf("the null numbers are: %d \n",null);
printf("the even numbers are: %d \n",even);
printf("the odd numbers are: %d \n",odd);
if (increasing==1){
printf("the numbers are arranged in ascending order\n");
}else if(decrescente==1){
printf("the numbers are arranged in descending order\n");
}else{
printf("the numbers are arranged neither in increasing nor in decreasing order\n");
}
system("pause");
return 0;
}
【问题讨论】:
-
请修正代码格式,以便其他人可以阅读和复制 - 将其全部放入一个代码块并正确缩进。此外,请给出准确的输入、预期结果和实际结果。
-
如果你正确缩进你的代码,你会更容易看到 if/else 语句的错误嵌套。
-
一个问题是
previous_number没有初始化,所以在第一次使用它时就会出现未定义的行为。
标签: c for-loop if-statement