Как организовать чтение данных - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, есть простенькая задача с олимпиады по программированию (10-11 классы). На php написал ее без проблем (брал данные из файла), а вот на СИ не могу справиться.. Прошу помощи организовать чтение данные. В остальном разберусь сам. Итак, входные данные: 1я строка - число N (1<=N<=31), количество занятий в текущем месяце Во второй строке через пробел, в порядке возрастания перечислены дни, в которые будут проходить занятия В следующих N строках располагается информация о пирожках, продаваемых в этот день – сначала указано число Mi – количество пирожков, продаваемых в этот день, затем через пробел записаны Mi чисел – цены пирожков, продаваемых в этот день. Все числа натуральные не превосходящие 1000. набросок исходника
#include <stdio.h>
 
int main(){
int N;
scanf("%d", &N);
 
/*тут как-то надо считать дни, в которые будут проходить занятия и записать их в массив. думаю, что надо как-то использовать подобный цикл 
int i=0, d[N];
while(scanf("%d", &d[i++])); 
но эту идею так и не смог развить.. дело в том, что после заполнения массива опять срабатывает scanf. выйти из цикла можно только если ввести не целое число (например, букву или знак препинания)*/
 
/*над этим еще не думал, так как застрял на прошлом шаге...*/
 
return 0;
}
В общем, буду благодарен, если подтолкнете на верный путь или покажите пример исходника, который подойдет для данной задачи. P.S. например, есть массив символов "1 5 12 23 30", можно как-то из него создать массив типа Int, где элементы - цифры из строки? в php для этого есть explode(). в СИ ничего подобного не нашел...

Решение задачи: «Как организовать чтение данных»

textual
Листинг программы
while(!feof(infile)){ //do something};

Объяснение кода листинга программы

  1. В начале данного кода, вероятнее всего, открывается файл infile для чтения.
  2. Затем происходит проверка условия feof(infile), которое возвращает значение true, если достигнут конец файла, и false в противном случае.
  3. Пока условие feof(infile) возвращает false, выполняется некий блок кода.
  4. В этом блоке кода, скорее всего, происходит чтение данных из файла infile.
  5. После выполнения всех операций внутри цикла, программа продолжает выполнение следующей итерации цикла.
  6. Если достигается конец файла (feof(infile) возвращает true), то выполнение программы продолжается после цикла.
  7. В конце программы, возможно, закрывается файл infile. Важно отметить, что без дополнительного контекста трудно дать более точное объяснение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы