87 lines
2.4 KiB
C
87 lines
2.4 KiB
C
|
#include <stdio.h>
|
|||
|
#include <stdint.h>
|
|||
|
#include <string.h>
|
|||
|
|
|||
|
#define STR_SIZE 30
|
|||
|
#define STUDEN_NUMBER 200
|
|||
|
|
|||
|
struct student {
|
|||
|
char surname[STR_SIZE];
|
|||
|
char name[STR_SIZE];
|
|||
|
uint8_t age;
|
|||
|
};
|
|||
|
//возраст самого старшего человека;
|
|||
|
int Eldest(struct student* course,int number){
|
|||
|
int max = course->age;
|
|||
|
for(int i=1;i<number;i++)
|
|||
|
if(max < (course+i)->age)
|
|||
|
max = (course+i)->age;
|
|||
|
return max;
|
|||
|
}
|
|||
|
|
|||
|
//количество людей с заданным
|
|||
|
//именем (имя также является
|
|||
|
//параметром функции);
|
|||
|
int SameNameNumber(struct student* course,int number,char* name)
|
|||
|
{
|
|||
|
int counter = 0;
|
|||
|
for(int i=0;i<number;i++)
|
|||
|
if(!strcmp(course[i].name,name))
|
|||
|
counter++;
|
|||
|
return counter;
|
|||
|
}
|
|||
|
|
|||
|
//количество людей, у которых есть
|
|||
|
//однофамильцы;
|
|||
|
int Namesakes(struct student* course,int number){
|
|||
|
int counter=0;
|
|||
|
for(int i=0;i<number-1;i++)
|
|||
|
for(int j=i+1;j<number;j++)
|
|||
|
if(!strcmp(course[i].surname, course[j].surname))
|
|||
|
{
|
|||
|
counter++;
|
|||
|
break;
|
|||
|
}
|
|||
|
return counter;
|
|||
|
}
|
|||
|
|
|||
|
void AddStudent(struct student* course,
|
|||
|
int number,char* surname,char* name,int age){
|
|||
|
course[number].age = age;
|
|||
|
strcpy(course[number].name,name);
|
|||
|
strcpy(course[number].surname,surname);
|
|||
|
}
|
|||
|
|
|||
|
void print(struct student* course,int number){
|
|||
|
for(int i=0;i<number;i++)
|
|||
|
printf("%s\t%s\t%d\n",
|
|||
|
course[i].surname,
|
|||
|
course[i].name,
|
|||
|
course[i].age);
|
|||
|
}
|
|||
|
|
|||
|
int AddCourse(struct student* course){
|
|||
|
int c=0;
|
|||
|
AddStudent(course,c++,"Ivanov","Ivan",18);
|
|||
|
AddStudent(course,c++,"Petrov","Ivan",19);
|
|||
|
AddStudent(course,c++,"Petrov","Ivan",19);
|
|||
|
AddStudent(course,c++,"Petrov","Ivan",19);
|
|||
|
AddStudent(course,c++,"Petrov","Ivan",19);
|
|||
|
AddStudent(course,c++,"Ivanov","Vasily",44);
|
|||
|
return c;
|
|||
|
}
|
|||
|
|
|||
|
int main(void)
|
|||
|
{
|
|||
|
struct student course1[STUDEN_NUMBER]; // массив из 200 структур
|
|||
|
struct student course2[STUDEN_NUMBER]; // массив из 200 структур
|
|||
|
int number1=AddCourse(course1);
|
|||
|
int number2=AddCourse(course2);
|
|||
|
print(course1,number1);
|
|||
|
printf("Eldest student = %d\n",Eldest(course1,number1));
|
|||
|
char* name = {"Ivan"};
|
|||
|
printf("Name %s number = %d\n",name,SameNameNumber(course1,number1,name));
|
|||
|
printf("Same surname number = %d\n",Namesakes(course1,number1));
|
|||
|
return 0;
|
|||
|
}
|