我如何在不返回值的情况下退出程序?
how can i exit the program without it returning a value?
当输入 1001 或大于它的值时,输出为 0。
当数字不多时应该给0,如果输入的数字大于限制应该退出,试过使用goto exit。
#include <stdio.h>
void main()
{
int n;
printf("Enter the number\n");
scanf("%d", &n);
int i, sum = 0;
if (1 <= n <= 1000)
{
for (i = 2; i < n; i++)
{
if (n % i == 0)
sum = sum + i;
}
(sum > n) ? printf("1") : printf("0");
}
else
return;
}
这个if语句中的条件
if (1 <= n <= 1000)
相当于
if ( ( 1 <= n ) <= 1000)
sub-expression 1 <= n
的结果是 0
或 1
。所以这个值在任何情况下都小于 1000
.
来自 C 标准(6.5.8 关系运算符)
6 Each of the operators < (less than), > (greater than), <= (less than
or equal to), and >= (greater than or equal to) shall yield 1 if the
specified relation is true and 0 if it is false. The result has type
int.
你需要写
if (1 <= n && n <= 1000)
使用逻辑与运算符。
注意,根据 C 标准,不带参数的函数 main
应声明为
int main( void )
当输入 1001 或大于它的值时,输出为 0。
当数字不多时应该给0,如果输入的数字大于限制应该退出,试过使用goto exit。
#include <stdio.h>
void main()
{
int n;
printf("Enter the number\n");
scanf("%d", &n);
int i, sum = 0;
if (1 <= n <= 1000)
{
for (i = 2; i < n; i++)
{
if (n % i == 0)
sum = sum + i;
}
(sum > n) ? printf("1") : printf("0");
}
else
return;
}
这个if语句中的条件
if (1 <= n <= 1000)
相当于
if ( ( 1 <= n ) <= 1000)
sub-expression 1 <= n
的结果是 0
或 1
。所以这个值在任何情况下都小于 1000
.
来自 C 标准(6.5.8 关系运算符)
6 Each of the operators < (less than), > (greater than), <= (less than or equal to), and >= (greater than or equal to) shall yield 1 if the specified relation is true and 0 if it is false. The result has type int.
你需要写
if (1 <= n && n <= 1000)
使用逻辑与运算符。
注意,根据 C 标准,不带参数的函数 main
应声明为
int main( void )