2012-05-04 6 views
1

Учитывая 'N' и L (количество строк), мне нужно получить первые N чисел из L строк, используя scanf и array [2 * 3]. Кто-нибудь может помочь?
Как получить первые n чисел в scanf?

Пример

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++]); 


Thanks

+1

Это домашнее задание? что вы пробовали? –

+1

Я отредактировал мой вопрос. – Rawhi

ответ

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; 
} 
+1

Отлично, но можете ли вы объяснить мне, что делает эта строка: scanf ("% * [^ \ n]% c", & dummy); – Rawhi

+1

@Rawhi,% * [^ \ n] означает пропустить до другой строки. dummy установлен в '\ n'. – BLUEPIXY

Смежные вопросы