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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2009, 20:49   #1
Lees27
 
Регистрация: 20.05.2009
Сообщений: 5
По умолчанию Указатели, задача по структуре

Даны списки 20 абитуриентов, их средние баллы аттестата и средний балл, полученный при поступлении в институт. Вывести три списка.
1 – абитуриентов, у которых разница средних баллов более 0,5;
2 – абитуриентов, у которых разница средних баллов более 1;
3 – абитуриентов, у которых разница средних баллов более 2.

Нужно решить с помощью структуры и указателей (выделить память для переменных)
Код:
Код:
#include <stdio.h>
#include <conio.h>
int main()
{
     char stu[20],label[20];
     float sr1,sr2;
     int entries=0;
     int loop;


     struct Entry_struct
     {
	 char stu[20];
	 float sr1;
	 float sr2;
     } entry[20];
   printf("\n\nPlease enter a label for the chart: ");
      scanf("%20s", label);
	  fflush(stdin);
   printf("How many entries will there be? (less than 6) ");
      scanf("%d", &entries);
	  fflush(stdin);
   for (loop=0;loop<entries;++loop)
   {
      printf("Entry %d\n", loop+1);
	printf("  Name   : ");
	       scanf("%s", entry[loop].stu);
		fflush(stdin);
	printf("  Total in school : ");
	       scanf("%f", &entry[loop].sr1);
		fflush(stdin);
	printf("  Total in university : ");
	       scanf("%d", &entry[loop].sr2);
		fflush(stdin);
   }
   printf("-----------------------------------------------------\n");
   for (loop=0;loop<entries;++loop)
      printf("%4d | %-20s | %5d | %15.2lf\n",
	     loop + 1,
	     entry[loop].stu,
	     entry[loop].sr1,
	     entry[loop].sr2);
   printf("-----------------------------------------------------\n");
   getch();
   return 0;

}
Это решение выводится с помощью клавиатуры и без указателей, а нужно через внешний файл.

Последний раз редактировалось Lees27; 16.11.2009 в 20:54.
Lees27 вне форума Ответить с цитированием
Старый 16.11.2009, 22:36   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Это как ? "выводится с помощью клавиатуры". Т.е. вывести результат не на консоль а в файл ? Если так, то fopen_s() + fclose() + заменить printf() на fprintf() (если не ошибаюсь).
BOBAH13 вне форума Ответить с цитированием
Старый 22.11.2009, 21:16   #3
Card1nal
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 44
По умолчанию

если Уникс, то проще цделать шелловый скрипт с перенаправлением
Card1nal вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поясните передачу значений по указателям fs444 Общие вопросы C/C++ 6 30.10.2009 10:52