我是c编程的新手,我需要在循环中扫描输入并在扫描时验证它们。 我尝试实现这样的目标:
在从0到n的循环中,对于每个n类型4输入,然后按回车验证它们(如果它们错误然后结束程序)然后继续键入另外4个输入(新行)......
基本输入是:
1 2 3 4(输入)(如果确定 - >光标下一行)
7 5 6 8(输入)....
一遍又一遍,直到n。
int i=0;
while (i <= n){
if(scanf("%d %d %d %d",&array[i],&array[i+1],&array[i+2],&array[i+4])!=4) return 0;
i+=5;
}
按下回车后,此程序结束。
感谢任何人的帮助。
答案 0 :(得分:0)
您需要为循环使用另一个计数器,因为i
用于数组的索引。
如果n
是您想要输入4个输入的次数,那么必须相应地分配数组(以5的倍数表示)。如果您的计数器以<
开头,您也应该使用小于n 0
且不等于相等的数量。
此处变量c
用于while条件。
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char** argv)
{
int n = 5;
int array[n*5]; // mult 5 because of i+=5 / 4 inputs at onece + 1 rserved
int i=0;
int r = 0, c = 0;
while (c < n){
printf("type four ints: ");
r = scanf("%d %d %d %d",&array[i],&array[i+1],&array[i+2],&array[i+4]);
if(4 != r) {
printf("bad input, program will exit: %d\n", r);
return EXIT_FAILURE;
}
i+=5;
c++;
}
return EXIT_SUCCESS;
}