Академический Документы
Профессиональный Документы
Культура Документы
Каразина
Факультет компьютерных наук
Харьков
2019
Условие задания 1:
Реализовать структуру данных для хранения результатов
олимпиады. В программе имеются 2 динамических массива (другие
структуры не использовать):1) одномерный, в котором хранятся
названия стран; 2) двумерный, в котором хранится количество медалей
по странам(золото, серебро, бронза). // можно использовать гибридный
массив с фиксированным количеством столбцов. Номера элементов
(стран) в одномерном массиве соответствуют номерам строк двумерного
массива. Т.е. если нулевым элементом в одномерном массиве является
«Германия», то значения, стоящие в нулевой строке двумерного
массива, соответствуют количеству медалей, которые набрали немецкие
спортсмены.
Задание 3:
Исходный код
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int flag=0;
int main(){
int p,M=0;
int **A = NULL;
char **S = NULL;
for(;;){
printf("1.Change data\n2.Show info about country\n"
"3.Print table about countries\n4.Exit\n");
scanf("%d", &p);
switch(p){
case 1:
S = vvod_strani(M,S,A);
if(flag==0){
A = vvod_medali(M,A);
M++;
}
flag=0;
break;
case 2:
print_po_strane(M,A,S);
break;
case 3:
print_tablica_info(S,A,M);
break;
case 4:
return 0;
}
}
return 0;
}
int i;
char a[50];
int temp;
printf("Enter country: ");
fflush(stdin);
fgets(a,50,stdin);
a[strlen(a)-1] = 0;
flag=1;
return S;
}
}
S = (char**)realloc(S, (M+1)*sizeof(char*));
S[M] = (char*)malloc(strlen(a)*sizeof(char));
return S;
}
int** vvod_medali(int M, int **A){
A = (int**)realloc(A, (M+1)*sizeof(int*));
A[M] = (int*)malloc(4*sizeof(int));
printf("Gold: ");
scanf("%d", &A[M][0]);
printf("Silver: ");
scanf("%d", &A[M][1]);
printf("Bronze: ");
scanf("%d", &A[M][2]);
A[M][3]=A[M][0]+A[M][1]+A[M][2];
return A;
}
int i,j;
char a[50];
a[strlen(a)-1] = 0;
}
printf("Country with this name is not found");
printf("\n");
}
int i,j;