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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2010, 05:31   #1
nondeadlollipop
 
Регистрация: 31.10.2010
Сообщений: 5
Сообщение Массив структур

Задача:создать массив структур а,содержащий фамилию и 3 оценки.Найти студентов,чей средний балл выше среднего группы и упорядочить по алфавиту.
Получить массив и вывести на экран.

вышел такой код:
Код:
#include <iostream>
#include <string.h>
#include <iomanip>
#include <conio.h>
using namespace std;

const int Nmax=100;
	float srg;
struct stud
{
	char fio[20];
	int oc[3];
	float sr;
}a[Nmax],b[Nmax];

void vvod(int &n,stud am[])
{
	int i;
	cout<<"Razmer massiva";
	cin>>n;
	for(i=0;i<n;i++)
		{
			cout<<"Student # "<<i<<endl;
			cout<<"Familiya"<<endl;
			scanf("%s",a[i].fio);
			cout<<"3 ocenki"<<endl;
			scanf("%d %d %d",&a[i].oc[0],&a[i].oc[1],&a[i].oc[2]);
			a[i].sr=(a[i].oc[0]+a[i].oc[1]+a[i].oc[2])/3;
			srg+=a[i].sr;
		}
}

void vubor(int n,stud am[],int nb,stud bm[])
{
	int i,j;
	int nb=-1;
	srg/=n;
	for(i=0;i<n;i++)
		if(a[i].sr>srg) nb++,b[nb]=a[i];
}

void sort(int nb,stud bm[])
{
	int nb=-1;
	stud s;
	for(int i=0;i<nb-1;i++)
		for(int j=0;j<i;j++)
			if(strcmp(b[j].fio,b[j+1].fio)>0) s=b[j],b[j]=b[j+1],b[j+1]=s;

}

void vuvod(int n,stud am[])
{
	cout<<"|"<<setw(12)<<"Familiya"<<"|"<<setw(9)<<"Ocenki"<<"|"<<setw(8)<<"Srednee"<<"|"<<"\n";
	cout<<"|"<<setw(31)<<"-------------------------------"<<"|"<<"\n";
	for(int i=0;i<n;i++)
		cout<<"|"<<setw(12)<<a[i].fio<<"|  "<<a[i].oc[0]<<"  "<<a[i].oc[1]<<"  "<<a[i].oc[2]<<"|"<<setw(8)<<a[i].sr<<"|"<<endl;
}

void main()
{
	int n,nb;
	vvod(n,a);
	cout<<"Vvedennui massiv"<<endl;
	vuvod(n,a);
	vubor(n,a,nb,b);
	sort(nb,b);
	cout<<"Polucennui massiv"<<endl;
	vuvod(nb,b);
	getch();
}
при компиляции выдает ошибку вида: nb не инициализированная переменная.
что не так в коде?вроде когда nb убираешь он не хочет сортировать,выдает тот же массив.
nondeadlollipop вне форума Ответить с цитированием
Старый 11.12.2010, 09:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Напиши:
Код:
int n,nb=0;
Хуже не будет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив структур ForzaJuve Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 27.11.2010 10:09
Массив структур AndreyT Общие вопросы C/C++ 2 01.06.2010 19:19
массив структур Help_me_please Помощь студентам 3 16.01.2010 02:19
Массив структур MLV Общие вопросы C/C++ 6 08.12.2009 20:44
Массив структур velvetdust Общие вопросы C/C++ 0 21.03.2009 13:18