在C中的数组中强制执行范围

快速,可能是超级基本问题。 如果我声明一个10个双精度数组并提示用户输入他们想要的索引数量(显然在1到10之间),我将如何强制执行该范围? 我假设使用if / else语句,但是有更强的方法来强制执行该范围吗?

再说一次,可能很简单。 我是新手,所以还不熟悉C ++或JavaScript。

得到那个没有。 用户的元素直到没有。 不在你的范围内。

假设n是您想要的范围1到10的数字。

解:

int n = 0; while(n<1 || n>10) { printf("Enter Correct value on n ie within range 1 to 10:\t"); scanf("%d", &n); } 

如果使用%(modulo)运算符将值包装在所需范围内,则可能是另一种解决方案。

 int n; int arr[10]; printf("Enter a number : "); scanf("%d",&n); printf("%d",arr[n%10]); 

表达式n%10将始终产生0到9之间的值。

编辑(为了更好的validation):

 #include 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]); } 

首先,您应该阅读文档,因为这是一个非常基本的示例。

其次避免在这里请求代码。 您应该始终尝试找到解决方案,然后在此处发布您的代码和错误以更正它。

你可以试试这个:

 #include int main(){ int n = 0; while(!(n > 1 && n < 10)){ printf("Enter an integer between 1 and 10: \n"); scanf("%d", &n); } }