Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 04.05.2011
Сообщений: 13
1

Отсортировать страны по площади

07.06.2011, 08:03. Показов 731. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Задача
Создать файл записей с перечисленными в варианте полями. Выполнить сортировку этого файла по указанному признаку.
Мой вариант:
Поля: страна, столица, общая площадь. Сортировка: по площади

Я вот сделала программу, но в файл записывает немного не так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include<stdio.h>
#include<string.h>
#include<io.h>
#define N 2
 
int main (void)
{
FILE *fp;
struct tab {
char strana[10];
char stolica[10];
unsigned ploshad;
};
struct tab strani[N+1];
int i,f,j,p;
clrscr();
for(i=0;i<N;i++)
{
printf("Vvedite nazvanie strani[%d]\n",i+1);
scanf("%s",&strani[i].strana);
printf("Vvedite stolicu strani\n");
scanf("%s",&strani[i].stolica);
printf("Vvedite ploshad strani\n");
scanf("%u",&strani[i].ploshad);
}
do
{
p=0;
for(i=0;i<N-1;i++)
if(strani[i].ploshad>strani[i+1].ploshad)
{
strcpy(strani[N+1].strana,strani[i].strana);
strcpy(strani[i].strana,strani[i+1].strana);
strcpy(strani[i+1].strana,strani[N+1].strana);
 
strcpy(strani[N+1].stolica,strani[i].stolica);
strcpy(strani[i].stolica,strani[i+1].stolica);
strcpy(strani[i+1].stolica,strani[N+1].stolica);
 
strani[N+1].ploshad=strani[i].ploshad;
strani[i].ploshad=strani[i+1].ploshad;
strani[i+1].ploshad=strani[N+1].ploshad;
 
p=1;
}
}
while(p==1);
 
for(i=0;i<N;i++)
{
printf("Strana %s\n",strani[i].strana);
printf("Stolicu strani %s\n",strani[i].stolica);
printf("Ploshad strani %u\n",strani[i].ploshad);
}
if ((fp=fopen("file.txt","a+"))==NULL)
{
printf("Ne mogy otkrit' file.\n");
exit(1);
}
for(i=0;i<N;i++)
{
fprintf(fp,"Strana %s\n",strani[i].strana);
fprintf(fp,"Stolica %s",strani[i].stolica);
fprintf(fp,"Ploshad %u",strani[i].ploshad);
}
fclose(fp);
return 0;
}
В файл идет вот такая запись:
Strana France
Stolica ParisPloshad 4578Strana Russia
Stolica MoscowPloshad 10000

Помогите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2011, 08:03
Ответы с готовыми решениями:

Отсортировать страны по спаданию количества населения
Здание: Есть страна о которой сказано 1)название 2)население 3) площадь. Нужно отсортировать по...

Определить, через сколько лет население первой страны превзойдет население второй страны
Задача такая: Население 2-х стран равно N1 и N2, соответственно прирост P1 и P2. Население N1 &lt; N2,...

Необходимо отсортировать страны по алфавиту в программе
Необходимо отсортировать страны по алфавиту в программе - C++ #include &lt;stdio.h&gt; #include...

Отсортировать страны по алфавиту и вывести на экран
В программу вписываешь данные о странах а она и должна сортировать страны по афавиту и тогда их...

__________________
2
1230 / 864 / 184
Регистрация: 16.03.2008
Сообщений: 4,108
Записей в блоге: 1
07.06.2011, 09:29 2
Так вы перевод строки "\n" сами поставили после страны. Надо
C++
1
2
3
fprintf(fp,"Strana %s",strani[i].strana);
fprintf(fp,"Stolica %s",strani[i].stolica);
fprintf(fp,"Ploshad %u\n",strani[i].ploshad);
Добавлено через 19 минут
Да пробелы не помешают
2
65 / 65 / 5
Регистрация: 11.01.2009
Сообщений: 130
07.06.2011, 09:42 3
используй
C
1
sprintf()
для формирования строки, затем записывай строку в файл
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2011, 09:42

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Образовать массив, индексами которого являются страны, а элементами - множества городов каждой страны
Образовать массив, индексами которого являются страны, а элементами - множества городов каждой...

PL SQL функция для определения страны по коду страны
Как написать pl sql функцию для определения кода страны? Например есть номер 7 922 555 1234...

Составить программу, которая бы выдавала по названию страны название столицы этой страны (использовать не менее 6-7 названий).
Составить программу, которая бы выдавала по названию страны название столицы этой страны...

Через сколько лет население страны X превзойдет население страны Y
Доброго времени суток, уважаемые. Помогите пожалуйста решить задачу с использованием...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.