Определить название государства с минимальной плотностью населения - C (СИ)
Формулировка задачи:
Известны данные о численности населения(в миллионах жителей) и площади(в тысячах квадратных километров) 28 государств. Определить название государства с минимальной плотностью населения.
Сделать через структуры, данные взять из txt. файла.
Вот кусок..дальше не получается
после этого не знаю как остальное сделать
include<stdio.h>
include<conio.h>
struct student(
char nazv[15]; double chislnas[15], ploshad[15];
int main (){Clrscr(); int i,j,k; char *a,*b,*c;
FILE *f; if ((f=fopen("vasya.txt", "rt"))=NULL)
{printf("nety"); getch();return 0;)
else {student gosvo [28];
for(i=o;!feof;i++)
{fscanf(f,"%s",a);
strcpy(gosvo[i].nazv,a);Решение задачи: «Определить название государства с минимальной плотностью населения»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
struct student
{
char nazv[15];
double chislnas;
double ploshad;
}gosvo[28];
int main ()
{
int i=0;
double plotn;
char min_gosvo[15];
FILE *f;
if ((f=fopen("vasya.txt", "rt"))==NULL)
{
printf("nety");
return 0;
}
else
{
while(!feof(f))
{
fscanf(f,"%s",gosvo[i].nazv);
fscanf(f,"%lf",&gosvo[i].chislnas);
fscanf(f,"%lf",&gosvo[i].ploshad);
i++;
}
}
plotn=gosvo[0].chislnas/gosvo[0].ploshad;
strcpy(min_gosvo,gosvo[0].nazv);
for(i=1;i<28;i++)
{
if(gosvo[i].chislnas/gosvo[i].ploshad <plotn )
{
plotn=gosvo[i].chislnas/gosvo[i].ploshad;
strcpy(min_gosvo,gosvo[i].nazv);
}
}
printf("Min plotn = %lf, %s",plotn,min_gosvo);
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdio.h и string.h
- Определяется структура student, которая содержит массив символов (nazv) и два double (chislnas и ploshad)
- Определяется массив gosvo типа student на 28 элементов
- В функции main открывается файл
vasya.txtдля чтения (если файл не может быть открыт, выводится сообщение об ошибке и функция возвращает 0) - В цикле while считываются данные из файла: название государства (массив nazv), плотность населения (chislnas) и площадь (ploshad) для каждого государства. Числовые значения считываются в переменную plotn
- После считывания всех данных, вычисляется минимальная плотность населения как отношение плотности населения к площади для первого государства (gosvo[0])
- Минимальная плотность населения и название государства копируются в соответствующие переменные min_gosvo
- В цикле for проверяются все государства, начиная со второго. Если плотность населения текущего государства меньше текущей минимальной плотности населения, то обновляются значения min_gosvo
- Выводится минимальная плотность населения и название государства с минимальной плотностью населения
- Функция возвращает 0