![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 11
|
![]()
Здравствуй Товарищи.
в инсте,дали мне задание написать программу. вот такое задание ". Описать структуру с именем STUDENT, с полями: фамилия, имя, номер группы, успеваемость (массив из пяти элементов). Ввести несколько структур. Затем напечатать их по возрастанию, используя в качестве первичного ключа – номер группы, в качестве вторичного – фамилию студента. Затем напечатать фамилии студентов, у которых средний балл ниже, чем средний балл по всем студентам." я посидел немного и пришел к такому коду. #include <iostream.h> #include <conio.h> #include <math.h> #include <stdio.h> #pragma argsused struct STUDENT {char family,name; int gnomer,Ycpevaqmostb;}; main(void) { const int n=5; int i,k,max; STUDENT b[n]; cout<<"Vvedite DannBIE"<<endl; for (i=0;i<n;i++) { cin>>b[i].family; cin>>b[i].name; cin>>b[i].gnomer; cin>>b[i].Ycpevaqmostb; } for (k=0;k<n-1;k++) for (i=0;i<n-1;i++) if (b[i].gnomer>b[i+1].gnomer) {max=b[i+1].gnomer; b[i].gnomer=b[i+1].gnomer; b[i+1].gnomer=max;} char temp; for (k=0;k<n-1;k++) for (i=0;i<n-1;i++) if (b[i].gnomer==b[i+1].gnomer) if (strcmp(b[i].family, b[i+1].family)>0) {strcopy (temp, b[i].family); strcopy (b[i].family,b[i+1].family); strcopy b[i+1].family,temp}; { cout<<"Paccpredelenie"<<endl; for (i=0;i<n;i++) {cout<<b[i].family<<" "; cout<<b[i].name<<" "; cout<<b[i].gnomer<<" "; cout<<b[i].Ycpevaqmostb<<" "<<endl; }}getch();} ммм в чем моя проблема. 1. он мне почему делает средний бал не бывалый.(одногруппники сказали что у меня где то ошибка в расчетах или вводе массива) но ятак и не заметил её. Если можете укажите ошибки и если не сложно покажите как правильно тут написать часть хотябы программы. программа лишь на с++. и без всяких функций. вот както так. спасибо.) |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 09.05.2010
Сообщений: 17
|
![]()
у вас как минимум family и name объявлены как символы, а не строки. Необходимо в квадратных скобках после них указать длину.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 09.05.2010
Сообщений: 17
|
![]()
и если успеваемость - массив из 5 элементов, то почему у вас это обычная переменная типа int, а не массив?
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 11
|
![]()
эм.. Сейчас буду исправлять. Тему пока не закрывайте .
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 11
|
![]()
#pragma argsused
#include <iostream.h> #include <conio.h> #include <string.h> int main(int argc, char* argv[]) { const n = 4; struct student { char fam[25], name[15], nomrg[15]; int ycpex[n]; }; student mas[n]; int s[n]; int sr; for (int i=0; i<n; i++) { cout << "Fam: "; cin >> mas[i].fam; cout << "Name: "; cin >> mas[i].name; cout << "nomrg': "; cin >> mas[i].nomrg; cout << "Ycpex:"; for (int h=0;h<n;h++) { cin >> mas[i].ycpex[h];} }; cout << endl; for (int f=0; f<n-1; f++) { for (int i=0; i<n-1; i++) { if ((mas[i].nomrg==mas[i+1].nomrg) && (strcmp(mas[i].fam, mas[i+1].fam)>0)) { student temp; temp = mas[i]; mas[i] = mas[i+1]; mas[i+1] = temp; }; }; }; for (int i=0; i<n; i++) { cout << mas[i].fam << "\t" << mas[i].name << "\t" << mas[i].nomrg << "\t" << mas[i].nomrg << endl; }; for (int i=0;i<n;i++) { for (int j=0;j<n;j++) { s[i]+=mas[i].ycpex[j];};} sr=1; for(int i=0;i<n;i++) {sr+=s[i]/n;} cout<<sr; getch(); return 0; } переписал код. но все равно, ошибки. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Структуры | balalay12 | Общие вопросы C/C++ | 4 | 28.04.2010 08:57 |
Структуры в С++ | Shtripling | Помощь студентам | 7 | 27.11.2009 13:56 |
Структуры | Wertex | Помощь студентам | 3 | 30.10.2009 13:52 |
Структуры в Си | osichev | Помощь студентам | 2 | 12.09.2009 15:51 |
Структуры | Centyrion | Общие вопросы C/C++ | 4 | 06.05.2008 20:33 |