Форум программистов, компьютерный форум CyberForum.ru

Вывести на экран фамилии и имена трех худших по среднему баллу учеников - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ С++ изменение регистра стринга http://www.cyberforum.ru/cpp-beginners/thread453410.html
Принимаем строку с клавиатуры. С пом. функции getline(). string clientName; getline(cin,clientName); Необходимо перевести всю строку в нижний регистр, независимо от того какие символы ввел пользователь. Подскажите, пожалуйста.
C++ Вывод динамической матрицы через указатели Вот код программы. # include <math.h> # include <conio.h> # include <iostream.h> # include <stdlib.h> # include <stdio.h> class ClMatr { int **M; int n,m; http://www.cyberforum.ru/cpp-beginners/thread453408.html
задача файлами C++
нужно сделать задачу так чтобы выбрал первый файл,выбрал второй файл и удалил повторы и то что выйдет, слияние первого и 2го файла в 3й файл!
C++ задача на Array
Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания номеров), а затем — элементы с нечет-ными номерами (также в порядке возрастания номеров): помогите мне ее решить на языке с++ плииз(
C++ Торрент протокол http://www.cyberforum.ru/cpp-beginners/thread453391.html
Где можно посмотреть исходник торрента ? http://www.utorrent.com/intl/ru/help/faq На оф. сайте написано что исходники не доступны . Может кто даст ссылочку на исходник торрента на С++ ?
C++ задача на массив Дан массив A размера N. Вывести его элементы в следующем порядке: A1, A2, AN, AN–1, A3, A4, AN–2, AN–3, … . подробнее

Показать сообщение отдельно
cooky
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 9
27.02.2012, 14:41  [ТС]     Вывести на экран фамилии и имена трех худших по среднему баллу учеников
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <string.h>
#include <math.h>
 
 
 
 
 
struct data
{
    int sum;
    char *user;
};
 
void packer (char*, data*, int );
 
int main()
{
   int N;
   std::cout<<"Введите число участников: ";
   std::cin>>N;
   //Если убрать эти строки и инициализировать N прямо в коде - ошибок не будет.почему?
   
 
   int const S=43;
   
   
   
   data *pupin = new data [N];
   char *tmpData = new char[S] ;
   
   
   
 
   for (int i=0; i<N; i++)
   {
      std::cout<<"Введите данные участника:"<<std::endl;
      std::cin.getline(tmpData,S);
      packer ( tmpData, pupin, i);
   }
 
   data min1, min2, min3;
   min1.sum=min2.sum=min3.sum=15;
 
 
   for(int i=0; i<N; i++)
   {
      if(pupin[i].sum<=min1.sum)
      {
         data tmp=min1;
         min1=pupin[i];
         min3=min2;
         min2=tmp;
      }
      else if (pupin[i].sum<=min2.sum)
      {
         min3=min2;
         min2=pupin[i];
      }
      else if(pupin[i].sum <= min3.sum)
         min3=pupin[i];
   }
 
   std::cout<<"Ученики с наименьшими результатом:"<<std::endl
      <<min1.user<<std::endl
      <<min2.user<<std::endl
      <<min3.user<<std::endl;
   
   
 
   return 0;
      
}
 
 
 
 
 
void packer (char *tmpD, data *pupin, int i)
{
   pupin[i].user = new char[37];
   strcpy(pupin[i].user, strtok(tmpD," "));
   strcat(pupin[i].user, " ");
   strcat(pupin[i].user, strtok(NULL," "));
 
   pupin[i].sum=atoi(strtok(NULL," "))+atoi(strtok(NULL," "))+atoi(strtok(NULL,"\n"));
 
}
 Комментарий модератора 
выкладывай код на форум!

Вот "исправленный вариант"..
а можете привести в качестве примера фрагмен кода с ипользованием "потоков" или ф-ции сканф
только условие следующее: данные о участнике(фамилия имя оценка оценка оценка) вводятся в одну строку, как указано в задании выше

Добавлено через 11 минут
Что тут получается? В строке tmpD ищется символ пробела, возращается на него указатель. А далее ты копируешь все, что стоит после пробела. А нужно наоборот копировать все что стоит до пробела.
Он возвращает указатель на первую лексему, то есть, внашем случае, Фамилию участника..место пробела заменятеся символом конца строки....помоему так)) ну в этой части программа работает правильно
 
Текущее время: 06:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru