Задачи С Файлами

  • Автор темы trash-250293
  • Дата начала
T

trash-250293

Гость
#1
1. Дан файл ,компоненты которого являются целыми числами. Найти:
а) количество четных чисел среди компонент;
б) количество удвоенных нечетных чисел среди компонент;
в) количество квадратов нечетных чисел среди компонент.

условие второй...... Сведения об ученике состоят из его имени и фамилии и названия класса (года обучения и буквы), в котором он учится. Дан файл , содержащий сведения об учениках школы.
2. Дан файл , содержащий те же самые сведения об учениках школы, что и в предыдущей задаче, и дополнительно отметки, полученные учениками в последней четверти.
а) Выяснить, сколько учеников школы не имеют отметок ниже четырех.
б) Собрать в файле сведения о лучших учениках школы, т.е. об учениках, не имеющих отметок ниже четырех и по сумме баллов не уступающих другим ученикам своего и параллельных классов.


это решение первой задачи...

#include <iostream.h>
#include <stdio.h>
void main (int argc,char *argv[])
{
FILE *in;
int t,i,k,p,m;
/* —--------- */
k = p = m = 0;
if (argc<2)
cout « "Имя файла не задано в командной строке.";
else
{
in = fopen (argv[1],"w+");
cout « "Вводите компоненты файла. Окончание ввода - число -1\n";
do
{
cin » t; fprintf (in,"%d\n",t);
}
while (t!=EOF);
fseek (in,0,SEEK_SET);//Перемещение указателя в начало файла
/* Вывод */
cout « "Контрольный вывод файла:\n";
fscanf (in,"%d",&t);
while (t!=EOF)
{
cout « t « endl; fscanf (in,"%d",&t);
}
fseek (in,0,SEEK_SET);//Перемещение указателя в начало файла
//Решение задачи
fscanf (in,"%d\n",&t);
while (t!=EOF)
{
if (t%2==0)
{
k++;
if (t%4!=0)
p++;
}
else
for (i=1; i<=t/2+1; i++)
if (t==i*i)
{
m++; break;
}
fscanf (in,"%d\n",&t);
}
fclose (in);
cout « "*****************************************\n";
cout « "Количество четных чисел : " « k « endl;
cout « "Количество удвоенных нечетных чисел: " « p « endl;
cout « "Количество квадратов нечетных чисел: " « m « endl;
}
}