C创建数组并检查输入错误

时间:2012-11-18 12:43:24

标签: c arrays validation input conditional-statements

简单的问题。我正在尝试构建一个简单的脚本,它会询问您的数字。该整数将是您将输入的总数。然后你的程序找到最大的数字和最小的数字。我已经建立了这个。容易。

  int CHECK=100;
  int a[50],size,i,max,min;

  printf("\nEnter the size of the array: ");
  scanf("%d",&size);
  printf("\nEnter %d numbers: ", size);
  for(i=0;i<size;i++)
  scanf("%d",&a[i]);
  }
  max=a[0];
  for(i=1;i<size;i++){
     if(max<a[i])
       max=a[i];
  }
 printf("\nLargest element: %d",max);
 printf("\n");
 min=a[0];
 for(i=1;i<size;i++){
  if(min>a[i])
       min=a[i];
}
printf("Smallest element: %d",small);
printf("\n");

return 0;
}

我的问题是,如何判断检查条件。例如,用户只能输入正数且小于100.因此,如果输入-4或201,则必须显示错误,告诉您再次尝试。 关于我们如何以简单的方式做到这一点的任何想法。或者甚至指出我正确的方向。

我很感激。谢谢。

1 个答案:

答案 0 :(得分:1)

这真的很容易 - 至少和Python一样简单。我坚持使用你的scanf来说明条件,但请参阅@ j_random_hacker的评论(++)。

for(i=0; i < size; i++) {
    scanf("%d",&a[i]);
    if ( a[i] < 0 || a[i] > 99 ) {
        fprintf(stderr, "Number '%d' is out of range, try again: ", a[i]);
        i--;
    }
}

顺便说一下,你的代码中缺少{,我认为这是一个转置错误。 (一致的缩进将有助于像这样的拾取错误 - 这不仅仅是Python中的一个好主意。)