• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Работа с текстовыми файлами Си

KapustinL

Ученик
Регистрация
22 Дек 2010
Сообщения
2
Реакции
0
Баллы
0
Работа с текстовыми файлами Си

Граждане очень нужна помощь:
"Написать программу, работающую с текстовыми файлами след. формата:
в строчках файла задана информация об абитуриентах и их баллах(0-10)
за вступительные экзамены. Для каждого указаны через запятую ФИО и баллы по алгебре,геометрии,физике,р.языку,информатике.
Требуется прочитать файл и вывести на экран список поступивших студентов (балл>=80)
балл= 2.5*(алг+геом)+1.5*физ+0.5*р.яз+3*инф
Список должен быть отсортирован в порядке убывания баллов."

Буду очень благодарен)
 
#include <stdio.h>




#include <math.h>
#include <conio.h>
void main(void)
{FILE *fo;
char w,p,n;
int h,q,x,j,a[5],i;
double s;


fo= fopen("c:\\temp\\FIO.txt","rt");

while( !feof(fo) ) {
fscanf( fo, "%s", &n );
for(i=0;i<=(strlen(n)-1);i++)
{if ((n>=0)&&(n<=10))
{
if (n[i+1]==0)
{a[j]=n*10+n[i+1];
i=i+1;
j=j+1;
}
a[j]=n;

j=j+1;}
if(j==5)
{s=(a[0]+a[1])*2.5 +1.5*a[2]+0.5*a[3]+3*a[4];
if(s>=80)
{p[x]=n;
x=x+1;}
j=0;
s=0;
}
}
for (h=0;h<=x-1;h++)
{for (q=0;q<=x-1;q++){if(p[q]<p[q+1])
{w=p[q];
p[q]=p[q+1];
p[q+1]=w;}
}
}
for(h=0;h<=x;h++)
{printf("%s\n",p[h]);}
fclose(fo);
}
 
Назад
Сверху