循环中的错误消息?

时间:2014-10-24 16:02:22

标签: c

这是个问题。 编写一个程序,要求用户输入1到5之间的数字。您的程序应显示1到20之间的所有数字,这些数字可以被此数字整除。您需要使用循环。

我想在用户输入范围之外的数字时输入错误消息,但我无法弄清楚如何操作或放在哪里。 这是我到目前为止的代码,它允许用户输入任何数字。

#include<stdio.h>

main()
{
    int num = 0;
    int i = 0;

    printf("Please enter a number from 1 to 5\n");
    scanf("%d",&num);

    for(i>=1; i<=20; i++)
        {
            if(i %num == 0)
            {
                printf("%d",i);
            } //end if

        }//end loop

}//end main()

3 个答案:

答案 0 :(得分:1)

您只需添加一个额外条件来检查给定值是否属于该范围。

#include<stdio.h>

int main()
{
    int num = 0;
    int i ; // There is no need to intialize variable.
    printf("Please enter a number from 1 to 5\n");
    scanf("%d",&num);
    if( num >=1 && num <= 5)
    {
        for(i=1; i<=20; i++)
        {
            if(i %num == 0)
            {
                printf("%d",i);
            } //end if
         } // end for
    } //end if
    else
    {
        printf("Error Message\n");
    }
}

答案 1 :(得分:0)

你可以这样做:

if (num > 5 || num < 1)
{
    cout << "Error Message!";
}

记得将它放入循环中。

答案 2 :(得分:-1)

    while(1) // infinite loop
     {
              if(scanf("%d",&num)==0)// if scanning an integer failed
              {
                    printf("Invalid input. Try again:");
                    scanf("%*s"); //remove the invalid input
                    continue; //loop again
              }
              if(num>0 && num<6)//if num is in range of 1 and 5
                    break; // break out of loop
              else
                    printf("invalid integer. Try again:");
     }

scanf替换为上述代码。

此外,您需要在i=1循环中i>=1代替for,因为您要将i分配给1