Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2012, 18:43   #1
trash-250293
Новичок
Джуниор
 
Регистрация: 02.06.2012
Сообщений: 1
По умолчанию c++.........Задачи С Файлами, первая задача решена, но выдает ошибку, а вот вторую никак не можем

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

Последний раз редактировалось Stilet; 02.06.2012 в 19:42.
trash-250293 вне форума Ответить с цитированием
Старый 02.06.2012, 19:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Это решение слабо подходит под работу по второй задаче. Во второй задаче описываются структуры вроде такого:http://www.programmersforum.ru/showthread.php?t=105501
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно решить задачу,1 решил вторую не могу ,вот типа того должна выглядеть.. PROmot Помощь студентам 1 17.05.2012 10:12
проверьте правильна ли решена задача myrka Помощь студентам 0 27.02.2011 23:13
Первая форма перекрывает вторую Shouldercannon Общие вопросы Delphi 10 27.04.2009 16:13
Вот никак!А? Elm0 Свободное общение 5 23.06.2007 20:25