-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStudent.c
126 lines (95 loc) · 3 KB
/
Student.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include<stdio.h>
#include<stdlib.h>
int size,n;
struct student{
char name[100];
int rollnumber;
float avg;
int marks[3];
}*st;
void read(){
printf("enter the number of students\n");
scanf("%d",&n);
if(n>size){
printf("reallocating");
size=n;
st=(struct student *)realloc(st,n*sizeof(struct student));
}
for(int i=0;i<n;i++){
printf("enter the details of %d\n",(i+1));
printf("enter the name and register number\n");
scanf("%s%d",(st+i)->name,&(st+i)->rollnumber);
printf("enter the marks in 3 subject\n");
for(int j=0;j<3;j++){
scanf("%d",&(st+i)->marks[j]);
}
}
printf("\n");
}
void avg(){
int sum=0;
if(n==0){
printf("no details present\n");
return;
}
for(int i=0;i<n;i++){
printf(" the details of %d\n",(i+1));
printf(" the name students is \t%s regpster number %d\n",(st+i)->name,(st+i)->rollnumber);
// scanf("%s%d",(st+i)->name,(st+i)->rollnumber);
printf("marks in 3 sub\n");
for(int j=0;j<3;j++){
printf("%d\t",(st+i)->marks[j]);
}
int min=(st+i)->marks[0];
for(int j=0;j<3;j++){
if((st+i)->marks[j]<min){
min=(st+i)->marks[j];
}
}
sum=(st+i)->marks[0]+(st+i)->marks[1]+(st+i)->marks[2]-min;
(st+i)->avg=(float)(sum)/2;
printf("\n the average marks is %f\n",(st+i)->avg);
}
printf("\n");
}
void display(){
if(n==0){
printf("empry\n");
return;
}
for(int i=0;i<n;i++){
printf(" the details of %d\n",(i+1));
printf(" the name of student is \t%s register number is %d\n",(st+i)->name,(st+i)->rollnumber);
// scanf("%s%d",(st+i)->name,(st+i)->rollnumber);
printf("marks in 3 subject\n");
for(int j=0;j<3;j++){
printf("%d\t",(st+i)->marks[j]);
}
}
printf("\n");
}
void main(){
int choice;
printf("enter the size\n");
scanf("%d",&size);
st=(struct student*)malloc(size*sizeof(struct student));
while(1){
printf("enter your choice \n");
scanf("%d",&choice);
switch(choice){
case 1:
read();
break;
case 2:
avg();
break;
case 3:
display();
break;
case 4:
exit(0);
default:
printf("Enter the valid choice\n");
}
}
}