这是个问题。 编写一个程序,要求用户输入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()
答案 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