gpt4 book ai didi

C 程序 : How to set custom integer range, 严格限制接受的输入数字仅在该范围内?

转载 作者:行者123 更新时间:2023-11-30 18:58:54 27 4
gpt4 key购买 nike

让我们考虑这样一种情况:程序必须将数字作为用户的输入,并且只能在 1 到 10,00,000,000 之间的严格范围内?在C语言中可以吗?如果是,如果有人可以通过修改以下示例程序来解释这一点,那就太好了。

#include<stdio.h>
int main()
{
unsigned long int n, e1,e2,e3;
int counter;

for(counter=0; counter<10; counter++)
{

scanf("%ld",&n); // how to restrict this between 1 to 10,000,000,000?

e1=n/2;
e2=n/3;
e3=n/4;

if(e1+e2+e3<n)
{
printf("%ld\n",n);
}

else

printf("%ld\n",e1+e2+e3);

}

return 0;
}

最佳答案

你的上限,10,000,000,000(一百亿),是一个相当大的数字。它不适合 32 位无符号整数,您需要更大的值。

因此,由于您知道需要支持的实际数字,因此最好使用显式 64 位数字(而不是希望系统的 unsigned long long 足够大)。

这需要 C99:

#include <stdint.h>

uint64_t n;

if(scanf("%" PRIu64, &n) == 1)
{
if(n >= 1 && n <= UINT64_C(10000000000))
printf("Great, number accepted\n");
else
printf("Please enter a number in range 1..10000000000\n");
}
else
printf("Please enter a number.\n");

显然,上面并不是一个完整的程序。

关于C 程序 : How to set custom integer range, 严格限制接受的输入数字仅在该范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14577407/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com