在C中的阵列执行范围(Enforcing range in an array in C)

2019-10-19 13:57发布

快速,可能超基本问题。 如果我声明的10个双打阵列,并且提示用户输入他们在(1至10,很明显)的索引多少双想,我将如何执行该范围? 我想用if / else语句,但有没有执行这一范围更优化的方式吗?

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

Answer 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);
}


Answer 2:

另一种解决方案也许如果使用%(模)运算所要求的范围内包裹的值。

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

表达n%10将总是导致在至9 0之间的值。

编辑(为了更好的验证):

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


Answer 3:

首先,你应该阅读文档 ,因为这是一个非常简单的例子。

其次避免此请求的代码。 你应该总是试图找到解决办法,然后发布您的代码,你的错误在这里加以纠正。

你可以试试这个:

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


文章来源: Enforcing range in an array in C