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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2010, 22:19   #1
Muro
Пользователь
 
Регистрация: 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. он мне почему делает средний бал не бывалый.(одногруппники сказали что у меня где то ошибка в расчетах или вводе массива) но ятак и не заметил её.
Если можете укажите ошибки и если не сложно покажите как правильно тут написать часть хотябы программы.
программа лишь на с++. и без всяких функций. вот както так.
спасибо.)
Muro вне форума Ответить с цитированием
Старый 15.05.2010, 22:44   #2
miftayka
Пользователь
 
Регистрация: 09.05.2010
Сообщений: 17
По умолчанию

у вас как минимум family и name объявлены как символы, а не строки. Необходимо в квадратных скобках после них указать длину.
miftayka вне форума Ответить с цитированием
Старый 15.05.2010, 22:45   #3
miftayka
Пользователь
 
Регистрация: 09.05.2010
Сообщений: 17
По умолчанию

и если успеваемость - массив из 5 элементов, то почему у вас это обычная переменная типа int, а не массив?
miftayka вне форума Ответить с цитированием
Старый 16.05.2010, 12:15   #4
Muro
Пользователь
 
Регистрация: 15.05.2010
Сообщений: 11
По умолчанию

эм.. Сейчас буду исправлять. Тему пока не закрывайте .
Muro вне форума Ответить с цитированием
Старый 16.05.2010, 12:31   #5
Muro
Пользователь
 
Регистрация: 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;
}
переписал код. но все равно, ошибки.
Muro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры 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