如何在scanf中接收前n个数字?

时间:2012-05-04 15:41:45

标签: c scanf

给定'N'和L(行数),我需要使用scanf和array [2 * 3]从L行接收前N个数字。有人可以帮忙吗?

  

示例

N=2, L=3 INPUTS =>
2   3   7 8  9
5 6 8 9  8
5 2
9 8 7
OUTPUT =>
array[0]=2
array[1]=3
array[2]=5
array[3]=6
array[4]=5
array[5]=2

我试过这个,但没有给我一个正确的输出:

    for(j=0; j<L; j++)
    for(i=0; i<N; i++)
        if(i == 0)
            scanf("\n%d", &array[r++]);
        else
            scanf(" %d", &array[r++]);


谢谢

1 个答案:

答案 0 :(得分:1)

#include <stdio.h>
#include <stdlib.h>

int main(void){
    int N,L;
    int *a;
    int i,j,count=0;
    char dummy;

    printf("N=");
    scanf("%d", &N);
    printf("L=");
    scanf("%d", &L);
    printf("N=%d, L=%d INPUTS =>\n", N, L);
    a =(int*)calloc(N*L, sizeof(int));
    for(i=0;i<L;++i){
        for(j=0;j<N;++j){
            scanf("%d ", &a[count++]);
        }
        scanf("%*[^\n]%c", &dummy);
    }
    printf("OUTPUT =>\n");
    for(i=0;i<count;++i){
        printf("array[%d]=%d\n", i, a[i]);
    }
    free(a);

    return 0;
}