Отсортировать студентов по кафедрам и посчитать средний бал по кафедрам - C (СИ)
Формулировка задачи:
Помогите написать прогу:ввести фамилию,кафедру,специальность,оценку студента.Отсортировать студентов по кафедрам и посчитать средний бал по кафедрам.Заранее спасибо.
Вот пробывал сам,но в конце не получается:
#include<string.h> #include<conio.h> #include<stdio.h> struct STUDENT { char kafedra[20],famil[20],spec[20]; int ocenka; }; void main() { int n,i,j,s; char c; float k; struct STUDENT arr[10]; clrscr();i=0; while(c!='N') { puts("Vvesti dannue pro studenta(Y/N)"); scanf("%s",&c); if (tolower(c)=='n') {break;} printf("Vvedite famil %u stud-",i); scanf("%s",&arr[i].famil); printf("Vvedite kafedru %u stud-",i); scanf("%s",&arr[i].kafedra); printf("Vvedite ocenku %u stud-",i); scanf("%d",&arr[i].ocenka); printf("%s,%s,%d\n",arr[i].famil,arr[i].kafedra,arr[i].ocenka); i=i+1; printf("%d\n",i);} n=i; printf("%d\n",i); s=0; for (i=0;i<n;i++) {s=s+arr[i].ocenka;} k=(float)s/n; printf("sredniy ball-%f\n",k); for (i=0;i<n;i++) for (j=0;j<n,j!=i;j++) { if(arr[i].kafedra==arr[j].kafedra) { printf("Famil[%d]-%s\n",j,arr[j].famil);printf("Famil[%d]-%s\n",i,arr[i].famil); } else {printf ("Famil[%d]-%s",j,arr[j].famil);} } getch(); }
Решение задачи: «Отсортировать студентов по кафедрам и посчитать средний бал по кафедрам»
textual
Листинг программы
#include<string.h> #include<conio.h> #include<stdio.h> #include <ctype.h> struct STUDENT { char kafedra[20],famil[20],spec[20]; int ocenka; }; void main() { int n,i,j,s, count; char c; struct STUDENT arr[10]; struct STUDENT temp; clrscr(); i=0; while(c!='N') { puts("Vvesti dannue pro studenta(Y/N)"); scanf("%s",&c); if (tolower(c)=='n') {break;} printf("Vvedite famil %u stud-",i+1); scanf("%s",&arr[i].famil); printf("Vvedite kafedru %u stud-",i+1); scanf("%s",&arr[i].kafedra); printf("Vvedite ocenku %u stud-",i+1); scanf("%d",&arr[i].ocenka); printf("%s,%s,%d\n",arr[i].famil,arr[i].kafedra,arr[i].ocenka); i=i+1; printf("%d\n",i);} n=i; // ñîðòèðîâêГ* for(i=0; i<n-1; i++) for(j=i+1; j<n; j++) { if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i==j-1) { i++; j++; } if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i!=j-1 && j<n) { temp=arr[i+1]; arr[i+1]=arr[j]; arr[j]=temp; i++; } } s=0; count=0; printf("Kafedra: %s\n", arr[0].kafedra); for(i=0; i<n; i++) { printf("%s\n", arr[i].famil); count++; s+=arr[i].ocenka; if(strcmp(arr[i].kafedra, arr[i+1].kafedra) && i!=n-1) { printf("Srednii ball kafedry %s: %f\n", arr[i].kafedra, (float)s/count); printf("Kafedra: %s\n", arr[i+1].kafedra); s=0; count=0; } } printf("Srednii ball kafedry %s: %f", arr[i-1].kafedra, (float)s/count); getch(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д