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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2009, 16:50   #1
STS_1991
Пользователь
 
Регистрация: 18.02.2009
Сообщений: 13
По умолчанию Исправить структуру на С.

Нужно исправить задачку, писал не сам, пытался исправить под себя и запутался, помогите пожалуйста привести в рабочее состояние(Задача на Си).
Условие:
1. Описать структуру с именем STUDENT, содержащую следующие поля:
• фамилия и инициалы;
• номер группы;
• успеваемость (массив из пяти элементов).
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из десяти структур типа
STUDENT; записи должны быть упорядочены по возрастанию номера
группы;
• вывод на дисплей фамилий и номеров групп для всех студентов, включенных
в массив, если средний балл студента больше 4,0;
• если таких студентов пет, вывести соответствующее сообщение.
Код:
#include <conio.h>
#include <math.h>
#include <stdlib.h>

using namespace std;

int i,j,k,N[10];


struct Student
{
char name[15];
int group;
int ocenki[5];
};


Student array[10],x;



main()
{


for(i=0;i<10;i++)
{

printf ("\n\nEnter the student name... ");
scanf ("%s",&array[i].name);
printf ("\n\nEnter the number of his group... ");
scanf ("%d",&array[i].group);

for(j = 0; j < 5; j++)
{
printf ("\n\nEnter the %d mark... ",j+1);
scanf ("%d",&array[i].ocenki[j]);
for(;array[i].ocenki[j] > 5 || array[i].ocenki[j] <2
{
printf ("\n\nEnter the %d mark... ",j+1);
scanf ("%d", &array[i].ocenki[j]);
}
}
}



for(i = 0; i < 10; i++)
{
N[i]=0;
for(j = 0; j < 5; j++)
N[i]+= array[i].ocenki[j];
}


printf ("\n\nStudents");
printf ("\n\n Name group marks\n\n");
for(i=0;i<10;i++)
{
for(j=i;j<10;j++)
{
if((array[i].group)>(array[j].group))
{
x=array[i];
array[i]=array[j];
array[j]=x;
}
}
printf ("%20s %5d ",array[i].name, array[i].group );

}



int r;
float s,m;

printf ( " Spisok ocenok.\n");
for(i=0;i<10;i++)
{
m=0; s=0;
for(j=0;j<5;j++) /
{
s=s+array[i].ocenki[j];
}
m=s/5;
if(m>4.0)
{
r = r+1;
printf ( "\n Srednyi ball bolshe '4' u studenta: " , array[i].name , array[i].group ,"\n");
}

}
if(r==0)
printf ( "\n\n Net studentov, nabravshih srednyi ball bol'she '4'.\n\n");
printf ( "Press any key...\n");
getch();
}
STS_1991 вне форума Ответить с цитированием
Старый 28.04.2009, 17:22   #2
Raz0r
Пользователь
 
Регистрация: 06.11.2007
Сообщений: 47
По умолчанию

Попробуй так, сам не проверял, но вроде должно работать...
Код:
#include <conio.h>
#include <stdio.h>

int i,j,k,N[10];

struct Student
{
	char name[15];
   int group;
   int ocenki[5];
};

Student array[10],x;

main()
{
for(i=0;i<10;i++)
{
	printf ("\n\nEnter the student name... ");
	scanf ("%s",&array[i].name);
	printf ("\n\nEnter the number of his group... ");
	scanf ("%d",&array[i].group);

for(j = 0; j < 5; j++)
{
	printf ("\n\nEnter the %d mark... ",j+1);
	scanf ("%d",&array[i].ocenki[j]);
}
}

for(i = 0; i < 10; i++)
{
	N[i]=0;
	for(j = 0; j < 5; j++)
	N[i]+= array[i].ocenki[j];
}

printf ("\n\nStudents");
printf ("\n\n Name group marks\n\n");
for(i=0;i<10;i++)
{
	for(j=i;j<10;j++)
	{
		if((array[i].group)>(array[j].group))
		{
		x=array[i];
		array[i]=array[j];
		array[j]=x;
		}
	}
	printf ("%20s %5d ",array[i].name, array[i].group );
}


int fl=0;
float m;

printf ( " Spisok ocenok.\n");
for(i=0;i<10;i++)
{
	m=N[i]/5;
	if(m>4.0)
	{
		fl=1;
		printf ( "\n Srednyi ball bolshe '4' u studenta: %20s group %5d" , array[i].name , array[i].group ,"\n");
	}

}
if(fl==0)
printf ( "\n\n Net studentov, nabravshih srednyi ball bol'she '4'.\n\n");
printf ( "Press any key...\n");
getch();
}
Raz0r вне форума Ответить с цитированием
Старый 28.04.2009, 18:37   #3
STS_1991
Пользователь
 
Регистрация: 18.02.2009
Сообщений: 13
По умолчанию

Запускаться запускается, но не выводит вообще "Srednyi ball bolshe '4' u studenta:", и не в столбец выводит "Name group marks".
STS_1991 вне форума Ответить с цитированием
Старый 29.04.2009, 15:24   #4
Raz0r
Пользователь
 
Регистрация: 06.11.2007
Сообщений: 47
По умолчанию

Ну значит так =)
Код:
#include <conio.h>
#include <stdio.h>

struct Student
{
	char name[15];
	int group;
	int ocenki[5];
};

void main()
{Student array[4], x;
int i, j, N[4], fl=0;
float m;
for(i=0; i<4; i++)
{
	printf ("\n\nEnter the student name... ");
	scanf ("%s",&array[i].name);
	printf ("\nEnter the number of his group... ");
	scanf ("%d",&array[i].group);
   N[i]=0;
	for(j=0; j<5; j++)
	{
		printf ("\nEnter the %d mark... ",j+1);
		scanf ("%d",&array[i].ocenki[j]);
		N[i]+=array[i].ocenki[j];
	}

}

printf ("\nSpisok ocenok.\n");
for(i=0; i<4; i++)
{
	m=N[i]/5.0;
	if(m>4.0)
	{
		fl=1;
		printf ( "\n Srednyi ball bolshe '4' u studenta: %s group %d\n" , array[i].name , array[i].group);
	}
}

printf ("\nStudents\nName group marks\n");
for(i=0; i<4; i++)
{
	for(j=i; j<4; j++)
	{
		if((array[i].group)>(array[j].group))
		{
		x=array[i];
		array[i]=array[j];
		array[j]=x;
		}
	}
	printf ("%s %d\n",array[i].name, array[i].group );
}

if(fl==0)printf ( "\n Net studentov, nabravshih srednyi ball bol'she '4'.\n");
printf("\nPress any key...");
getch();
}
Raz0r вне форума Ответить с цитированием
Старый 29.04.2009, 16:39   #5
STS_1991
Пользователь
 
Регистрация: 18.02.2009
Сообщений: 13
По умолчанию

Вот теперь работает, спасибо большое...
STS_1991 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать структуру содержащую поля LuenFen Общие вопросы C/C++ 1 16.04.2009 23:00
[C++|Builder] Задача на структуру данных conqueror Помощь студентам 3 17.01.2009 14:25
Отсортировать с помощью STL структуру Иллидан Общие вопросы C/C++ 2 12.11.2008 17:19
TCategoryButtons создать структуру ? Родион Компоненты Delphi 2 07.05.2008 16:41