Отсортировать страны по площади - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Задача Создать файл записей с перечисленными в варианте полями. Выполнить сортировку этого файла по указанному признаку. Мой вариант: Поля: страна, столица, общая площадь. Сортировка: по площади Я вот сделала программу, но в файл записывает немного не так:
#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 Помогите пожалуйста

Решение задачи: «Отсортировать страны по площади»

textual
Листинг программы
fprintf(fp,"Strana %s",strani[i].strana);
fprintf(fp,"Stolica %s",strani[i].stolica);
fprintf(fp,"Ploshad %u\n",strani[i].ploshad);

Объяснение кода листинга программы

  1. В данном коде используется функция fprintf, которая предназначена для форматированного вывода данных в файл.
  2. fp - это файловый указатель, который указывает на файл, в который производится запись.
  3. strani[i] - это массив структур, который содержит информацию о странах. Каждая структура strani содержит три поля: strana (название страны), stolica (столица страны) и ploshad (площадь страны).
  4. i - это индекс, который используется для обращения к каждому элементу массива strani.
  5. В каждой итерации цикла fprintf выводит в файл название страны (strana), столицу (stolica) и площадь (ploshad) соответствующей страны.
  6. После вывода каждого набора данных, функция fprintf добавляет символ новой строки (\n), чтобы перейти на следующую строку.
  7. В результате выполнения данного кода, в файл будет записан список стран, отсортированных по площади.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы