我的代码的第二个循环有问题

问题描述 投票:0回答:1

第一个问题是INPUT 第一个随机数:5和第二个随机数:20,所以输出将是5,6,7,8,9,10,11,12,13,14,15,16, 17,18,19,20。这一项有效。

#include<stdio.h>
main()
{
    int i=5,num1,num2;

    printf("Enter a 1st random number: ");
    scanf("%d", &num1);
    printf("Enter 2nd random number: ");
    scanf("%d", &num2);
    while(i<=20)
    {
        printf("\n %d",i);

        i=i+1;
    }


    int ii = 7,num,numb;

    printf("\n Enter a 1st random number: ");
    scanf("%d", &num);
    printf("\n Enter 2nd random number: ");
    scanf("%d", &numb);
    while (ii == 2)
    {
        printf("%d\n", i);
        i++;
    }
    getch();
}

第二个问题没有打印出预期的结果:INPUT 第一个随机数:7和第二个随机数:2,所以OUTPUT应该是7,6,5,4,3,2。但这不起作用。

c include stdio getch
1个回答
0
投票

之所以不希望使用数字序列,是因为在第二个循环中,您正在打印i而不是ii,而且您永远不会减少它,因此它永远不会到达目标2

以这种方式修改您的代码:

#include<stdio.h>
int main()
{
    int i=5,num1,num2;
    printf("Enter a 1st random number: ");
    scanf("%d", &num1);
    printf("Enter 2nd random number: ");
    scanf("%d", &num2);
    while(i<=20)
    {
        printf("\n %d",i);

        i=i+1;
    }

    int ii = 7,num,numb;
    printf("\n Enter a 1st random number: ");
    scanf("%d", &num);
    printf("\n Enter 2nd random number: ");
    scanf("%d", &numb);
    while (ii >= 2)
    {
        printf("%d\n", ii);
        ii--;
    }

    return 0;
}

但是,我确定这不是所需的行为,因为您从未使用过输入中接收到的值。

在下面的演示程序中,正确管理了输入数字,并且根据num1num2之间的关系,打印顺序是升序还是降序。

#include<stdio.h>
int main()
{
    int i, num1, num2;
    printf("Enter a 1st random number: ");
    scanf("%d", &num1);
    printf("Enter 2nd random number: ");
    scanf("%d", &num2);

    i = num1;
    while(1)
    {
        printf("\n %d",i);

        if(num1 < num2)
        {
            i++;

            if(i > num2)
                break;
        }
        else
        {
            i--;

            if(i < num2)
                break;
        }
    }

    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.