Как сканировать много чисел в одной строке? - C (СИ)
Формулировка задачи:
for(i=0;i<M;i++)
{
scanf("%d",&r[0][i]);
for(j=1;j<r[0][i]*2;j++)
{
scanf("c1 %d ",&r[j][i]);
}
}Решение задачи: «Как сканировать много чисел в одной строке?»
#include <stdlib.h>
#include <stdio.h>
main()
{
int N,E,M,i,j,aaa;
scanf("%d%d%d",&N,&E,&M);
int r[N*2+1][M];
for(i=0;i<M;i++)
{
scanf("%d",&r[0][i]);
for(j=1;j<r[0][i]*2;j++)
{
scanf("c1 %d ",&r[j][i]);
}
}
for(i=0;i<M;i++)
{
printf("%d\n",r[0][i]);
for(j=1;j<r[0][i]*2;j++)
{
printf("%d",r[j][i]);
}
}
}
Объяснение кода листинга программы
В этом коде программа запрашивает у пользователя ввод трех целых чисел N, E и M. Сначала объявляются три переменные типа int: N, E и M и инициализируются значениями, которые пользователь ввел. Затем объявляется массив r типа int размером (N2+1) на M. Далее в цикле происходит чтение элементов массива r. Сначала в каждой строке массива r считываются числа, которые пользователь ввел. Затем во внутреннем цикле считываются числа, которые пользователь ввел. Числа считываются в переменную r[j][i], но поскольку размер массива r по строке равен N2+1, а по столбцу равен M, то вводится проверка j<r[0][i]*2, чтобы не выйти за пределы массива. После считывания всех чисел выводится на экран первая строка массива r, затем все числа в столбцах этого массива.