#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <math.h>
#include <Windows.h>
#define LG 73
char linija1[LG + 1] = "------------------------------------------------------";
char linija2[LG + 1] = "-----------------------------";
int k = 1;
struct tableI
{
char* name[4];
float doctor[100];
float bunk[100];
} tableI;
void get_name(char nm[]) {
printf("Введите %d-ую страну : ", k);
scanf_s("%s", &nm, 80);
++k;
}
void get_doc(float dc[]) {
float res = 1;
do {
if (dc < 0 || res != 1)
printf("Вы ошиблись, введите повторно кол-во врачей: ");
else
printf("Введите кол-во врачей: ");
res = scanf_s("%f", &dc);
while (getchar() != '\n');
} while (dc < 0 || res != 1);
}
void get_bunk(float bk[]) {
float res = 1;
do {
if (bk < 0 || res != 1)
printf("Вы ошиблись, введите повторно кол-во врачей: ");
else
printf("Введите кол-во врачей: ");
res = scanf_s("%f", &bk);
while (getchar() != '\n');
} while (bk < 0 || res != 1);
}
int main()
{
setlocale(LC_ALL, "rus");
int i;
float n, min, j;
struct tableI a; // struct Counry
printf("Введите страны: ");
get_name(a.name[0]);
get_name(a.name[1]);
get_name(a.name[2]);
get_name(a.name[3]);
struct tableI b; // count doc
printf("Введите кол-во врачей за 1940: ");
get_doc(&b.doctor[0]); // 1940
get_doc(&b.doctor[1]);
get_doc(&b.doctor[2]);
get_doc(&b.doctor[3]);
printf("Введите кол-во врачей за 1960: ");
get_doc(&b.doctor[4]); // 1960
get_doc(&b.doctor[5]);
get_doc(&b.doctor[6]);
get_doc(&b.doctor[7]);
struct tableI c; // count bunk
printf("Введите кол-во коек в 1940");
get_bunk(&c.bunk[0]); // 1940
get_bunk(&c.bunk[1]);
get_bunk(&c.bunk[2]);
get_bunk(&c.bunk[3]);
printf("Введите кол-во коек в 1940");
get_bunk(&c.bunk[4]); // 1960
get_bunk(&c.bunk[5]);
get_bunk(&c.bunk[6]);
get_bunk(&c.bunk[7]);
//вывод шапки
printf("%s\n", linija1);
printf("| Республика | Число врачей | Число коек | Отношение |\n");
printf("%s\n", linija1);
// вывод данных
min = b.doctor[1] / c.bunk[1];
for (i = 0; i <= 3; i++)
{
n = b.doctor[i] / c.bunk[i];
printf("| %-9s| %-11.2f| %-9.2f| %-8.2f| \n", a.name[i], b.doctor[i], c.bunk[i], n);
printf("%s\n", linija1);
if (min > n)
min = n;
}
printf("min: %.2f \n", min);
printf("Введите число врачей: ");
scanf_s("%f", &j);
//вывод шапки table 2
printf("%s \n", linija2);
printf("| Республика | Число врачей | \n");
printf("%s \n", linija2);
// вывод данных
for (i = 0; i <= 3; i++)
{
if (b.doctor[i + 4] < j)
{
printf("| %-9s| %-11.2f| \n", a.name[i], b.doctor[i + 4]);
printf("%s\n", linija2);
}
}
return 0;
}
spoiler /* Примеры вывода, когда доходит до таблицы просто ее не выводит
---------------------------------------------------------------------------------
| Республика | 1940 г || 1960 г |
---------------------------------------------------------------------------------
| | Число врачей | Число коек || Число врачей | Число коек |
---------------------------------------------------------------------------------
| РСФСР | 82.2 | 482 || 221.2 | 939.4 |
---------------------------------------------------------------------------------
| Украина | 33.4 | 157.6 || 73.8 | 318 |
---------------------------------------------------------------------------------
| Латвия | 1.7 | 12 || 5.2 | 23.2 |
---------------------------------------------------------------------------------
| Эстония | 0.07 | 0.1 || 2.7 | 11.2 |
---------------------------------------------------------------------------------
*/
/* Вывод на А , найти min Соотношения
------------------------------------------------------
| Республика | Число врачей | Число коек | Отношение |
------------------------------------------------------
| РСФСР | 82.2 | 482 | 82.2/482 |
------------------------------------------------------
| Украина | 33.4 | 157.6 | 33.4/157.6|
------------------------------------------------------
| Латвия | 1.7 | 12 | 1.7/12 |
------------------------------------------------------
| Эстония | 0.07 | 0.1 | 0.07/0.1 |
------------------------------------------------------
*/
/* // Вывод на B 1960 г. в каких республиках врачей < M тыс. |-- республика --|-- число врачей --|
М = 100 тыс
----------------------------------
| Республика | Число врачей |
----------------------------------
| РСФСР | 221.2 |
----------------------------------
| Украина | 73.8 |
----------------------------------
| Латвия | 5.2 |
----------------------------------
| Эстония | 2.7 |
----------------------------------
ПРограмма на Си, #си - не нашел.