0

我是 c 编程的新手,我需要循环扫描输入并在扫描它们时验证它们。我试图实现这样的目标:

在从 0 到 n 的循环中,对于每 n 输入 4 个输入,然后按 Enter 验证它们(如果它们错误则结束程序)然后继续输入另外 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;
}

这个程序在我按下回车后结束。

感谢任何人的帮助。

4

1 回答 1

0

您需要为循环使用另一个计数器,因为i它用于数组的索引。

如果n是您想要进行 4 个输入的次数,则必须相应地分配数组(以 5 的倍数计算)。此外<,如果您的计数器以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;  
} 
于 2013-11-09T18:53:07.493 回答