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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2017, 03:39   #51
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

У меня по чему то строчка "RUS" не хочет работать, я её заменил на "SetConsole", но если у тебя работает тот русификатор, то его оставляй.

Протестируй (при разных комбинациях):

Код:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

struct beg
{
	char fam[50];
	float res;
};

int main()
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);

	int kol, i, j;
	printf("Введите количество человек: ");
	scanf("%d", &kol);
	
	if (1 <= kol)
	{
		beg *a = (beg*)calloc(kol, sizeof(beg));
		printf("\nФамилии студентов и их результаты в беге:\n");
		for (i = 0; i < kol; i++)
		{
			scanf("%s %f", &a[i].fam, &a[i].res);
			for (j = 0; j <= i; j++)
			{
				if (a[j].res > a[i].res)
				{
					beg b = a[i];
					a[i] = a[j];
					a[j] = b;
				}
			}			
		}

		printf("\nОтсортированные игроки:\n");	
		if (kol <= 4)
		{
			;
		}
		else
			kol = 4;

		for (i = 0; i < kol; i++)
		{
			printf(" %d-е место: %s (%.0f сек)\n", i + 1, a[i].fam, a[i].res);
		}
	}	
	else
	{
		printf("\nНекорректное количество студентов!\n");
	}

	scanf("%d", &i); // чтобы консоль быстро не закрывалась
	return 0;
}

Вроде работает:

0 (3).jpg

но есть проблема - повторяющихся часов. Т.е. если у спортсменов будет одинаковое время, тогда и они оба должны быть на одинаковой ступени (а сейчас не так - просто выводит первые 4-ри)...

Пиши, что думаешь.

Последний раз редактировалось ura_111; 21.03.2017 в 03:41.
ura_111 вне форума Ответить с цитированием
Старый 21.03.2017, 12:36   #52
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Некоторые пишут, что нужно удалять динамический массив после использовании,
а другие пишут, что "раз программа закрывается, то и она всё сделает ("почистит мусор")". Ну, не знаю...

А как там, вообще, удалять динамический массив?
ura_111 вне форума Ответить с цитированием
Старый 21.03.2017, 21:51   #53
Антон1990
Пользователь
 
Регистрация: 20.03.2017
Сообщений: 48
По умолчанию

Вы не подскажите как записать массив?


#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

struct beguny
{char fam [20];
float rez;
};

int comp (const int *, const int *);
int main(void)
{
int i, kol;
struct beguny data[10];
setlocale(LC_ALL,"Russian");
printf("Введите количество участников: ");
scanf("%d", &kol);
for(i=0;i<kol;i++)
{
printf("Введите фамилию %d-го студента:",i+1);
scanf("%s", &data[i].fam);

printf("Введите результат %d-го студента в беге: ",i+1);
scanf("%f", &data[i].rez);
}

float rez11 = data[i,0].rez * 100;
float rez12 = data[i,1].rez * 100;
float rez13 = data[i,2].rez * 100;
float rez14 = data[i,3].rez * 100;
float rez15 = data[i,4].rez * 100;
float rez16 = data[i,5].rez * 100;
float rez17 = data[i,6].rez * 100;
float rez18 = data[i,7].rez * 100;
float rez19 = data[i,8].rez * 100;
float rez20 = data[i,9].rez * 100;


float num[10] = {rez11,rez12,rez13,rez14,rez15,rez1 6,rez17,rez18,rez19,rez20};
printf ("\n");
qsort(num, 10, sizeof (int), (int(*) (const void *, const void *)) comp);
printf ("\n");


data[i,0].rez = num[0]/100;
data[i,1].rez = num[1]/100;
data[i,2].rez = num[2]/100;
data[i,3].rez = num[3]/100;
data[i,4].rez = num[4]/100;
data[i,5].rez = num[5]/100;
data[i,6].rez = num[6]/100;
data[i,7].rez = num[7]/100;
data[i,8].rez = num[8]/100;
data[i,9].rez = num[9]/100;

printf ("\n");
printf("\nЧетыре лучших студента: ");
printf ("\n");
for ( i=0;i<4;i++)
{
printf("\n %d %s ", i+1,data[i].fam);
printf(" %5.2f", data[i].rez);
printf("\n ");
}
return 0;

}

int comp (const int *i, const int *j)
{
return *i - *j;

system("pause");
return 0;
}
Антон1990 вне форума Ответить с цитированием
Старый 21.03.2017, 23:03   #54
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Какой массив?
И что значит, записать?
ura_111 вне форума Ответить с цитированием
Старый 21.03.2017, 23:22   #55
Антон1990
Пользователь
 
Регистрация: 20.03.2017
Сообщений: 48
По умолчанию

вот это можно в цикл поместить?

float rez11 = data[i,0].rez * 100;
float rez12 = data[i,1].rez * 100;
float rez13 = data[i,2].rez * 100;
float rez14 = data[i,3].rez * 100;
float rez15 = data[i,4].rez * 100;
float rez16 = data[i,5].rez * 100;
float rez17 = data[i,6].rez * 100;
float rez18 = data[i,7].rez * 100;
float rez19 = data[i,8].rez * 100;
float rez20 = data[i,9].rez * 100;
Антон1990 вне форума Ответить с цитированием
Старый 21.03.2017, 23:24   #56
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Код:
	float rez[10];
	for (i = 0; i < kol; i++)
	{
		rez[i] = data[i].rez * 100;
	}
ura_111 вне форума Ответить с цитированием
Старый 21.03.2017, 23:48   #57
Антон1990
Пользователь
 
Регистрация: 20.03.2017
Сообщений: 48
По умолчанию

а как тогда это записать?
Антон1990 вне форума Ответить с цитированием
Старый 21.03.2017, 23:53   #58
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Что такое записать?
ura_111 вне форума Ответить с цитированием
Старый 21.03.2017, 23:54   #59
Антон1990
Пользователь
 
Регистрация: 20.03.2017
Сообщений: 48
По умолчанию

float num[10] = {rez11,rez12,rez13,rez14,rez15,rez1 6,rez17,rez18,rez19,rez20};
Антон1990 вне форума Ответить с цитированием
Старый 21.03.2017, 23:57   #60
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

А зачем этот дубляж (num, rez) вообще нужен?
Ведь тоже самое.... Оставляешь одно из... и всё.
Ну вот:

Код:
	float num[10];
	for (i = 0; i < kol; i++)
	{
		num[i] = data[i].rez * 100;
	}
ura_111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите дописать программу - допишите в программу формулу m=sqrt(re^2+lm^2) ( Delphi ) nicroma Помощь студентам 0 24.12.2013 19:59
Помогите дописать программу cL1zMa Паскаль, Turbo Pascal, PascalABC.NET 2 06.06.2008 14:40
Помогите дописать программу. ShnapS Паскаль, Turbo Pascal, PascalABC.NET 5 17.05.2008 19:50
Помогите дописать программу ALIZE Помощь студентам 2 09.12.2007 18:45