编写一个程序,读取一个整数序列,如果每个后续数字大于前一个,则打印“递增”,否则打印“不递增”。当你读一个负数时,就结束读数字。
到目前为止我得到的是:

#include <stdio.h>
int main()
{
    int a[100],i;

    for(i=0; ; i++)
    {
        scanf("%d",&a[i]);
        if(a[i]<0)
            break;
    }

    for(i=0;;i++)
    {
        if(a[i]<0)
            break;

        if(a[i+1]>a[i])
        {
            printf("increasing\n");
        }
        else if(a[i+1]<a[i])
            printf("not increasing\n");
    }

    return 0;
}

样本输入:1 4 6 2 6 3 -1
样本输出:
increasing
increasing
not increasing
increasing
not increasing

我得到:
increasing
increasing
not increasing
increasing
not increasing
not increasing

我的问题是如何去除最后不必要的“不增加”?

最佳答案

一个简单的解决方法是更改此测试(在第二个循环中),从:

 if(a[i]<0)
    break;

致:
 if(a[i + 1]<0)
    break;

不过,请注意,这不是很健壮,但它可能足以作为一个简单的家庭作业练习。

关于c - 如果整数序列的后续数量大于前一个,则显示“增加”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26348725/

10-11 18:24