快速,可能是超级基本问题。如果我声明一个10个双精度数组并提示用户在索引中输入他们想要的双倍数(显然在1到10之间),我将如何强制执行该范围?我假设使用if / else语句,但是有更强的方法来强制执行该范围吗?
同样,可能非常简单。我是新手,所以还不熟悉C ++或JavaScript。
答案 0 :(得分:1)
得到那个没有。用户的元素直到没有。不在你的范围内。
假设n是您想要的范围1到10的数字。
<强>解决方案:强>
int n = 0;
while(n<1 || n>10) {
printf("Enter Correct value on n i.e. within range 1 to 10:\t");
scanf("%d", &n);
}
答案 1 :(得分:1)
如果使用%(modulo)运算符将值包装在所需范围内,则可能是另一种解决方案。
int n;
int arr[10];
printf("Enter a number : ");
scanf("%d",&n);
printf("%d",arr[n%10]);
表达式n%10
将始终产生0到9之间的值。
编辑(为了更好的验证):
#include<stdio.h>
main()
{
int x, n;
int arr[]={0,1,2,3,4,5,6,7,8,9,10,11,12};
printf("Enter a number : ");
if( scanf("%d",&n)!=1 )
{
printf("Not a valid integer!!");
return;
}
n=(n<0)?-n:n;
printf("%d",arr[n%10]);
}
答案 2 :(得分:0)
首先你应该阅读documentation,因为这是一个非常基本的例子。
其次避免在这里请求代码。您应该始终尝试找到解决方案,然后在此处发布您的代码和错误以更正它。
你可以试试这个:
#include<stdio.h>
int main(){
int n = 0;
while(!(n > 1 && n < 10)){
printf("Enter an integer between 1 and 10: \n");
scanf("%d", &n);
}
}