C programs Basic Solutions
Here I posted solutions for C programs that available in Internet .
Click on the below title to navigate to your section.
1. Robot
#include<stdio.h> int main() { char name[50],creator[50],pur[50]; int mem; float speed; printf("Enter the Name :\n"); scanf("%s",name); printf("Enter the Creator Name :\n"); scanf("%s",creator); printf("Enter the Purpose :\n"); scanf("%s",pur); printf("Memory Space :\n"); scanf("%d",&mem); printf("Speed :\n"); scanf("%f",&speed); printf("My Details :\nI am the Robot named %s.\nI was created by %s.\nI am created for the purpose of %s.\nMy memory space is around %dGb and my speed is %.1f Tb.",name,creator,pur,mem,speed); return 0; }
2. Grocery Shop
#include<stdio.h> int main() { int a,b,c,d; printf("Enter the cost of A4sheet:\n"); scanf("%d",&a); printf("Enter the cost of Pen:\n"); scanf("%d",&b); printf("Enter the cost of Pencil:\n"); scanf("%d",&c); printf("Enter the cost of Eraser:\n"); scanf("%d",&d); printf("Items Details\n"); printf("A4sheet:%d\nPen:%d\nPencil:%d\nEraser:%d",a,b,c,d); }
#include<stdio.h> int main() { int a,b,c,d; printf("Enter the numbers :\n"); scanf("%d%d%d",&a,&b,&c); d=(a>b)?(a>c?a:c):(b>c?b:c); printf("%d is the greatest number",d); }
4. Four Seasoners
#include<stdio.h> int main() { int x1,x2,x3,y1,y2,y3; float c,d; printf("X1\n"); scanf("%d",&x1); printf("Y1\n"); scanf("%d",&y1); printf("X2\n"); scanf("%d",&x2); printf("Y2\n"); scanf("%d",&y2); printf("X3\n"); scanf("%d",&x3); printf("Y3\n"); scanf("%d",&y3); c=x1+x2+x3; c=c/3; d=y1+y2+y3; d=d/3; printf("Dinesh's house is located at (%.1f,%.1f)",c,d); }
5. Right angle or not
#include<stdio.h> int main() { int a,b,c; printf("Enter the length two smallest sides of triangle\n"); scanf("%d%d",&a,&b); printf("Enter the length of longest side of triangle\n"); scanf("%d",&c); if((a<=0)||(b<=0)||(c<=0)) {printf("Invalid Input"); return 0; } a=a*a; b=b*b; c=c*c; if(a+b==c) printf("Triangle is Right Angled Triangle"); else printf("Triangle is not Right Angled Triangle"); }
6. Leap Year
#include<stdio.h> int main() { int year; scanf("%d",&year); if(year%4==0) { if(year%100==0) {if(year%400==0) printf("%d is a leap year",year); else printf("%d is not a leap year",year); } else printf("%d is a leap year",year); } else printf("%d is not a leap year",year); }
7. Switch operations
#include<stdio.h> int main() { int a,b,c; printf("Enter the first value :\n"); scanf("%d",&a); printf("Enter the second value :\n"); scanf("%d",&b); if(a<=b) {a=a+b; b=a-b; a=a-b;} printf("Enter the choice from the menu\n1.Addition\n2.Subtraction\n3.Multiplication\n4.Division\n"); scanf("%d",&c); switch(c) { case 1:printf("The value after Addition is %d.",a+b); break; case 2:printf("The value after Subtraction is %d.",a-b); break; case 3:printf("The value after Multiplication is %d.",a*b); break; case 4:printf("The value after Division is %d.",a/b); } }
8. Lift 1
#include<stdio.h> int main() { int n; scanf("%d",&n); int a[3],j,c=0,b[3],min; for(int i=0;i<3;i++) { scanf("%d",&a[i]); if(a[i]>n) b[i]=a[i]-n; else b[i]=n-a[i]; } min=(b[0]<=b[1])?(b[0]<=b[2]?b[0]:b[2]):(b[1]<=b[2]?b[1]:b[2]); for(j=0;j<3;j++) { if(min+n==a[j]) { c++; break; } } if(c>0) { printf("%d",a[j]); } else printf("%d",n-min); }
9. Upside Down Gift Articles
#include<stdio.h> int main() { int c=0; int n,ch[2]; scanf("%d",&n); ch[0]=n/10; ch[1]=n%10; for(int i=0;i<=1;i++) { if((ch[i]==1)||(ch[i]==8)||(ch[i]==6)||(ch[i]==9)||(ch[i]==0)) c++; } if(c==2) printf("yes"); else printf("no"); }
10. Lesson on Squares
#include<stdio.h> int main() { int x,y,l,a,b,c,d; scanf("%d%d%d",&x,&y,&l); a=x-l/2; b=x+l/2; c=y-l/2; d=y+l/2; printf("%d,%d\n",b,d); printf("%d,%d\n",b,c); printf("%d,%d\n",a,c); printf("%d,%d",a,d); }
11. Sum of digits
#include<stdio.h> int main() { int a,i,sum=0,temp; printf("Enter the value :\n"); scanf("%d",&a); temp=a; while(a>0) { i=a%10; sum=sum+i; a=a/10; } printf("Sum of digits in %d is %d",temp,sum); }12. Mahirlmathi Battle and Prime Numbers
#include<stdio.h> int main() { int a,b,sum,i,tsum; scanf("%d%d",&a,&b); sum=a+b; tsum=sum+1; for( i=tsum;i<tsum/2+tsum;i++) { int flag=0; for(int j=2;j<=i/2;j++) { if(i%j==0) {flag=1; break;} } if(flag==0) {break;} } printf("%d",i-sum); }13. Ramanujan Numbers and the Taxi cab
#include<stdio.h> int main() { int n; scanf("%d",&n); if((n==1729)||(n==4104)||(n==13832)||(n==20683)||(n==32832)||(n==39312)||(n==40033)||(n==46683)||(n==64232)||(n==65728)) printf("yes"); else printf("no"); }
14. Square Game
#include<stdio.h> int main() { int n,a; scanf("%d",&n); a=n/4; a=a*4; a=a/2; a=a*a; printf("%d",a); }
15. Character Pattern 8
#include<stdio.h> int main() { int n,i,j; scanf("%d",&n); for(i=0;i<n;i++) { for(j=1;j<n*2;j++) { if(i>=j||j>=n*2-i) printf("b"); else printf("*"); } printf("\n"); } }
#include<stdio.h> int GCD(int a,int b) { int rem=a%b; while(rem!=0) { a=b; b=rem; rem=a%b; } return b; } int LCM(int a,int b) { return ((a*b)/GCD(a,b)); } int main() { int a,b,g,l; printf("Enter two integers:\n"); scanf("%d%d",&a,&b); g=GCD(a,b); l=LCM(a,b); printf("Greatest common divisor of %d and %d = %d\nLeast common multiple of %d and %d = %d",a,b,g,a,b,l); return 0; }
2. Expression Evaluation
#include<stdio.h> #include<math.h> int calculate(int x,int n) { int sum=x; for(int i=2;i<=n;i++) { sum=sum+pow(x,i); } return sum; } int main() { int x,n,y; printf("Enter the value of x\n"); scanf("%d",&x); printf("Enter the value of n\n"); scanf("%d",&n); y=calculate(x,n); printf("The result is\n%d",y); return 0; }
3. Simplified Fraction
#include<stdio.h> int GCD(int a,int b) { if(b==0) return a; return GCD(b,a%b); } void fun(int a,int b) { int d=1; if(a/b==0) { if(a<b) d=GCD(a,b); else if(b<a) d=GCD(a,b); printf("%d/%d",a/d,b/d); } else { int m=1; if((a%b)/b==0) { if((a%b)<b) m=GCD(a%b,b); else if((a%b)>b) m=GCD(a%b,b); } printf("%d %d/%d",a/b,(a%b)/m,b/m); } } void printValue(int a,int b) { if(a%b==0) printf("%d",a/b); else fun(a,b); } int main() { int a,b; scanf("%d%d",&a,&b); printValue(a,b); return 0; }
4. Array Median
#include<stdio.h> #include<stdlib.h> int main() { int n,*arr,temp; printf("Enter the number of elements in the array\n"); scanf("%d",&n); arr=(int*)malloc(n*sizeof(int)); printf("Enter the elements in the array\n"); for(int i=0;i<n;i++) { scanf("%d",arr+i); } for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { if(*(arr+i)> *(arr+j)) { temp =*(arr +i); *(arr+i)=*(arr+j); *(arr+j)=temp; } } } float median; if(n%2==0) { int mid=n/2; median=(float)(*(arr+mid-1)+ *(arr+mid))/2; } else median=*(arr+(n/2)); printf("The median of the array is %.2f",median); return 0; }
5. Array Range
#include<stdio.h> #include<stdlib.h> int main() { int *arr; int n; printf("Enter the numbe of elements in the array\n"); scanf("%d",&n); arr=(int*)malloc(n*sizeof(int)); printf("Enter the elements in the array\n"); for(int i=1;i<=n;i++) { scanf("%d\n",arr+i); } int min=*(arr+1); for(int i=2;i<=n;i++) { if(*(arr+i)<min) { min=*(arr+i); } } int max=*(arr+1); for(int i=2;i<=n;i++) { if(*(arr+i)>max) max=*(arr+i); } int c=max-min; printf("The range of the array is %d",c); return 0; }
6. No of Distinct Elements in an unsorted array
#include<stdio.h> #include<stdlib.h> int main() { int *a,n; scanf("%d",&n); a=(int*)malloc(n*sizeof(int)); for(int i=0;i<n;i++) { scanf("%d",a+i); } int count=1; for(int i=1;i<n;i++) { int j=0; for( j=0;j<i;j++) { if(a[i]==a[j]) break; } if(i==j) count++; } printf("%d",count); return 0; }
7. Inversion Count
#include<stdio.h> #include<stdlib.h> int main() { int n,*arr,count=0; scanf("%d",&n); arr=(int*)malloc(n*sizeof(int)); for(int i=0;i<n;i++) { scanf("%d",arr+i); } for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { if(*(arr+i)>*(arr+j)) { int temp=*(arr+i); *(arr+i)=*(arr+j); *(arr+j)=temp; count++; } } } printf("%d",count); return 0; }
8. Maximum Difference
#include<stdio.h> int maxdiff(int a[],int n) { int max_diff=a[1]-a[0]; int i,j; for( i=0;i<n;i++) { for( j=i+1;j<n;j++) { if(a[j]-a[i]>max_diff) { max_diff=a[j]-a[i]; } } } return max_diff; } int main() { int x,temp; scanf("%d",&x); int a[x]; for(int i=0;i<x;i++) { scanf("%d",&a[i]); } temp=maxdiff(a,x); printf("%d",temp); }
9. Array Type
#include<stdio.h> #include<stdlib.h> int findType(int n,int *arr) { int even=0,odd=0; for(int i=0;i<n;i++) { if(*(arr+i)%2==0) even++; else odd++; } if(even==n) return 1; else if(odd==n) return 2; else return 3; } int main() { int *arr,n; printf("Enter the number of elements in the array\n"); scanf("%d",&n); arr=(int*)malloc(n*sizeof(int)); printf("Enter the elements in the array\n"); for(int i=0;i<n;i++) { scanf("%d",arr+i); } int a=findType(n,arr); switch(a) { case 1:printf("The array is Even");break; case 2:printf("The array is Odd");break; case 3:printf("The array is Mixed");break; } return 0; }
10. Fruit Yielding Tree
#include<stdio.h> #include<stdlib.h> void find(int *a,int *max,int n) { int maxx = -1,i,v,s; for(i=0;i<n;i++) { v=*(a+i); if(v>maxx) { s=i; maxx=v; } } *max=maxx; *(a+s)=-1; } int main() { int *a,n,i,max=-1; scanf("%d",&n); a=(int*)malloc(sizeof(int)*n); for(i=0;i<n;i++) { scanf("%d",a+i); } find(a,&max,n); find(a,&max,n); printf("%d",max); return 0; }2 D Arrays and Strings
1. Matrix Addition
#include<stdio.h> int main() { int n; scanf("%d",&n); int mat1[n][n],mat2[n][n],mat3[n][n]; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { scanf("%d",&mat1[i][j]); } } for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%d",&mat2[i][j]); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { mat3[i][j]=mat1[i][j]+mat2[i][j]; printf("%d ",mat3[i][j]); } printf("\n"); } }
2. Magic Square
#include<stdio.h> int main() { int n; scanf("%d",&n); int mat[n][n],a[n],b[n],sum=0,m,l,c=0; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { scanf("%d",&mat[i][j]); if(i==j) sum+=mat[i][j]; } } m=sum; sum=0; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) sum+=mat[i][j]; a[i]=sum; sum=0; } sum=0; for(int j=0;j<n;j++) {for(int i=0;i<n;i++) sum+=mat[j][i]; b[j]=sum; sum=0; } sum=0; int j=n-1;; for(int i=0;i<n;i++) {sum+=mat[i][j]; j--; } l=sum; if(l==m) { for(int i=0;i<n;i++) { if((a[i]==l)&&(b[i]==l)) c++; } if(c==n) printf("yes"); else printf("no"); } else printf("no"); }
3. Image Enlarger
#include<stdio.h> #include<stdlib.h> int main() { int m,n; scanf("%d%d",&m,&n); char **arr; arr=(char**)malloc(sizeof(char*)*m); for(int i=0;i<m;i++) *(arr+i)=(char*)malloc(sizeof(char)*n); for(int i=0;i<m;i++) scanf("\n%s",*(arr+i)); int a; scanf("\n%d",&a); for(int i=0;i<m;i++) for(int u=0;u<a;u++) { for(int j=0;j<n;j++) for(int k=0;k<a;k++) printf("%c",*(*(arr+i)+j)); printf("\n"); } return 0; }
4. Chess Board 2
#include<stdio.h> int main() { int n,x1,x2,y1,y2; scanf("%d%d%d%d%d",&n,&x1,&x2,&y1,&y2); char a[n][n]; int m=n-1; x1=x1-1; x2=x2-1; y1=y1-1; y2=y2-1; a[x1][x2]='B'; a[y1][y2]='R'; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { a[i][j]='.'; } } a[x1][x2]='B'; a[y1][y2]='R'; int i=x1,j=x2; if(x1!=0 && y1!=0) { while(1) { --i; --j; if(i==0 || j==0) { break; } } } while(1) { if(a[i][j]=='B'||a[i][j]=='R') { if(i==m || j==m) break; i++; j++; continue;} else { a[i][j]='*'; } if(i==m ||j==m) break; i++; j++; } i=x1; j=x2; if(x1!=0 && x2!=m) { while(1) { --i; ++j; if(i==0 || j==m) break; } } while(1) { if(a[i][j]=='B'||a[i][j]=='R') { if(i==m || j==0) break; ++i; --j; continue; } else a[i][j]='*'; if(i==m || j==0) break; ++i; --j; } i=y1; j=y2; for(int u=0;u<n;u++) { if(a[i][u]=='B'||a[i][u]=='R') continue; else if(a[i][u]=='*') a[i][u]='%'; else a[i][u]='$'; } for(int u=0;u<n;u++) { if(a[u][j]=='B'||a[u][j]=='R') continue; else if(a[u][j]=='*') a[u][j]='%'; else a[u][j]='$'; } for(int u=0;u<n;u++) { for(int k=0;k<n;k++) { printf("%c",a[u][k]); } printf("\n"); } return 0; }
5. Row vs Col
#include<stdio.h> #include<stdlib.h> int **readMatrix(int rows,int cols) { int** arr =(int**)malloc(rows * sizeof(int*)); for(int i=0;i<rows;i++) { *(arr+i)=(int*)malloc(cols * sizeof(int)); } for(int i=0;i<rows;i++) { for(int j=0;j<cols;j++) { scanf("%d",*(arr+i)+j); } } return arr; } void displayMatrix(int **a,int rows,int cols) { for(int i=0;i<rows;i++) { for(int j=0;j<cols;j++) { printf("%d ",a[i][j]); } printf("\n"); } } int findRowDominantMatrix(int **a,int rows,int cols) { int max=0,c=0; for(int i=0;i<rows;i++) { int temp =0; for(int j=0;j<cols;j++) { temp+=a[i][j]; } if(max<temp) { max=temp; } } for(int j=0;j<cols;j++) { int t=0; for(int i=0;i<rows;i++) { t+=a[i][j]; } if(max<t) { c++; } } if(c==0) return 1; else return 0; } int main() { int m,n,**arr,s; scanf("%d%d",&m,&n); arr= readMatrix(m,n); displayMatrix(arr,m,n); s=findRowDominantMatrix(arr,m,n); if(s==1) printf("Row Dominant"); else printf("Not Row Dominant"); return 0; }
6. Delete Vowels
#include<stdio.h> #include<string.h> int main() { char name[200]; int n; printf("Enter the input string\n"); scanf("%s",name); n=strlen(name); printf("The output string is "); for(int i=0;i<n;i++) { if(name[i]=='a'||name[i]=='e'||name[i]=='i'||name[i]=='o'||name[i]=='u') continue; printf("%c",name[i]); } }
7. Operations on Strings
#include<stdio.h> #include<stdlib.h> int findStringLength(char *a) { int i =0; while(*(a+i)!='\0') i++; return i; } char *findStringReverse(char *a) { int j=0; char *b; b=(char*)malloc(sizeof(char)*findStringLength(a)); for(int i=findStringLength(a)-1;i>=0;i--) { *(b+j)=*(a+i); ++j; } return b; } char *concatenateStrings(char *a,char *b) { char *q; int n=findStringLength(a)+findStringLength(b),j=0; q=(char*)malloc(sizeof(char)*n); for(int i=0;i<findStringLength(a);i++) { *(q+j)=*(a+i); j++; } for(int i=0;i<findStringLength(b);i++) { *(q+j)=*(b+i); j++; } return q; } int compareStrings(char *a,char *b) { if(findStringLength(a)>=findStringLength(b)) { for(int i=0;i<findStringLength(a);i++) if(*(a+i)==*(b+i)) continue; else if((*(a+i))<*(b+i)) return -1; else return 1; } else { for(int i=0;i<findStringLength(b);i++) if(*(a+i)==*(b+i)) continue; else if(*(a+i)<*(b+i)) return -1; else return 1; } return 0; } int main() { int compare,l1,l2,n=50; char *a,*b,*c,*d,*e; a=(char*)malloc(sizeof(char)*n); b=(char*)malloc(sizeof(char)*n); c=(char*)malloc(sizeof(char)*n); d=(char*)malloc(sizeof(char)*n); e=(char*)malloc(sizeof(char)*n); scanf("%s",a); scanf("%s",b); l1=findStringLength(a); l2=findStringLength(b); printf("Length of the first string is %d\n",l1); printf("Length of the second string is %d\n",l2); c=findStringReverse(a); d=findStringReverse(b); printf("The reverse of the first string is %s\n",c); printf("The reverse of the second string is %s\n",d); e=concatenateStrings(a,b); printf("The concatenated string is %s\n",e); compare=compareStrings(a,b); if(compare==1) printf("%s appears before %s",b,a); else if(compare==-1) printf("%s appears before %s",a,b); else printf("Both the input strings are same"); return 0; }
8. First non - repeating Letter
#include<stdio.h> #include<string.h> int main() { char name[50]; int j,d=0,c=0,n; scanf("%s",name); n=strlen(name); for(int i=0;i<n;i++) { d=0; for(j=0;j<n;j++) { if(name[i]==name[j]) d++; } if(d==1) { printf("%c",name[i]); c++; break; } } if(c==0) printf("All characters are repetitive"); }
9. Author Name III
#include<stdio.h> int main() { char a[4],name[4],b[30]; a[0]='A'; int d=0; for(int i=0;i<3;i++) { scanf("%s",b); a[i+1]=b[0]; } scanf("%s",name); for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { if(a[i]==name[j]) { name[j]='@'; d++; break; } } } if(d==4) printf("yes"); else printf("no"); return 0; }
10. Special Name 3
#include<stdio.h> #include<string.h> #include<ctype.h> int main() { int b[30],c=0,d=0,n; char name[30]; scanf("%s",name); n=strlen(name); for(int i=0;i<n;i++) { char ch=name[i]; name[i]=tolower(ch); b[i]=name[i]; if(b[i]<=109) c++; else d++; } if(c==d) printf("yes"); else printf("no"); }
1. Recursion 2
#include<stdio.h> int fibo(int n) { if(n==1) return 0; else if(n==2) return 1; else return fibo(n-2)+fibo(n-1); } int main() { int n,f; printf("Enter the value of n\n"); scanf("%d",&n); f=fibo(n); printf("The term %d in the fibonacci series is %d",n,f); return 0; }
2. Maximum Element in array
#include<stdio.h> int i=0; int max=0; int findMaxElement(int *a,int b) { if(i<b) { if(a[i]>max) max=a[i]; i++; return findMaxElement(a,b); } return max; } int main() { int n,res; printf("Enter the size of the array\n"); scanf("%d",&n); printf("Enter %d elements of an array\n",n); int a[n]; for(int i=0;i<n;i++) { scanf("%d",&a[i]); } res=findMaxElement(a,n); printf("Maximum element in the array is %d",res); return 0; }
3. Conversion of base 10 no to any base
#include<stdio.h> #include<string.h> void convert(int n, int b); int main() { int n,b; printf("Enter the value of n\n"); scanf("%d",&n); printf("Enter the base to which you want to convert\n"); scanf("%d",&b); convert(n,b); printf("\n"); return 0; } void convert(int n, int x) { char * convString ="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; if(n%x==n) { printf("The number in base %d is ",x); printf("%c",convString[n]); } else { convert(n/x,x); printf("%c",convString[n%x]); } }
4. String Replace Characters
#include<stdio.h> #include<stdlib.h> void replace (char *s,char from,char to) { static int i=0; if(!*(s+i)) return; if(*(s+i)==from) *(s+i)=to; i++; replace(s,from,to); } int main() { char s[200],b,c; printf("Enter the string\n"); scanf("%s%*c",s); printf("Enter the character to be replaced\n"); scanf("%[^\n]%*c",&b); printf("Enter the character to be replaced with\n"); scanf("%c",&c); replace(s,b,c); printf("The modified string is %s",s); return 0; }
5. Find no of connected objects
#include<stdio.h> #include<stdlib.h> void objectCount(int **a,int i,int j,int row,int col) { int d=0; if(i<0 || i>=row) d=0; else if(j<0 || j>=col) d=0; else d=1; if(d) { if(*(*(a+i)+j)) { a[i][j]=0; objectCount(a,i-1,j-1,row,col); objectCount(a,i-1,j,row,col); objectCount(a,i-1,j+1,row,col); objectCount(a,i,j-1,row,col); objectCount(a,i,j+1,row,col); objectCount(a,i+1,j-1,row,col); objectCount(a,i+1,j,row,col); objectCount(a,i+1,j+1,row,col); } } } int main() { int r,c,count=0; printf("Enter number of rows:\n"); scanf("%d",&r); printf("Enter number of columns:\n"); scanf("%d",&c); int **a = malloc(r * sizeof(int *)); for(int i=0;i<r;i++) *(a+i)=malloc(c * sizeof(int)); printf("Enter the matrix:\n"); for(int i=0;i<r;i++) { for(int j=0;j<c;j++) scanf("%d",(*(a+i)+j)); } for(int i=0;i<r;i++) { for(int j=0;j<c;j++) if(a[i][j]==1) { count++; objectCount(a,i,j,r,c); } } printf("Number of connected objects = %d",count); return 0; }
6. Flipkart
#include<stdio.h> struct phone { int emino,model; char name[30],color[30]; }s; int main() { printf("Enter the emino:\n"); scanf("%d",&s.emino); printf("Enter the name:\n"); scanf("%s",s.name); printf("Enter the colour:\n"); scanf("%s",s.color); printf("Enter the model:\n"); scanf("%d",&s.model); printf("Details:\nEmino:%d\nName:%s\nColour:%s\nModel:%d",s.emino,s.name,s.color,s.model);; return 0; }
7. Structures : Student
#include<stdio.h> #include<string.h> struct Student { char name[30]; char department[20]; int yearOfStudy; float cgpa; }; int main() { int n,i,j; printf("Enter the number of students\n"); scanf("%d",&n); struct Student temp; struct Student std[n]; for(i=0;i<n;i++) { printf("Enter the details of student %d\n",i+1); printf("Enter name\n"); scanf("%s",std[i].name); printf("Enter department\n"); scanf("%s",std[i].department); printf("Enter year of study\n"); scanf("%d",&std[i].yearOfStudy); printf("Enter cgpa\n"); scanf("%f",&std[i].cgpa); } for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(strcmp(std[i].name,std[j].name)>0) { temp=std[i]; std[i]=std[j]; std[j]=temp; } } } //fill your code printf("Details of students\n"); for(i=0;i<n;i++) { printf("Student %d\n",i+1); printf("Name : %s\n",std[i].name); printf("Department : %s\n",std[i].department); printf("Year of study : %d\n",std[i].yearOfStudy); printf("CGPA : %.2f\n",std[i].cgpa); } return 0; }
8. Structures Student II
#include<stdio.h> #include<stdlib.h> #include<string.h> struct Student{ char name[30]; char department[20]; int yearOfStudy; float cgpa; }; void sortRecords(struct Student *s,int n) { struct Student temp; int i,j; for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) { if(strcmp((s+j)->name,(s+j+1)->name)>0) { temp=*(s+j); *(s+j)=*(s+j+1); *(s+j+1)=temp; } } } } void dispStudentDetails(struct Student *s){ printf("Name : %s\n", (s->name)); printf("Department : %s\n",s->department); printf("Year of study : %d\n", s->yearOfStudy); printf("CGPA : %.2f\n", s->cgpa); } void dispStudentNamesFromYear(struct Student * s, int year, int n){ printf("Students from Year %d\n", year); int i; for(i=0;i<n;i++) { if((s+i)->yearOfStudy==year) { printf("%s\n",(s+i)->name); } } } void dispStudentNamesFromDept(struct Student * s, char * dept, int n){ printf("Students from Department %s\n", dept); int i; for(i=0;i<n;i++) { if(strcmp((s+i)->department,dept)==0) { printf("%s\n",(s+i)->name); } } } void dispDeptTopperDetails(struct Student * s, char * dept, int n){ printf("%s Department Topper Details\n", dept); float max=0.0f; int pos,i; for(i=0;i<n;i++) { if(strcmp((s+i)->department,dept)==0) { if(max<(s+i)->cgpa) { pos=i; max=(s+i)->cgpa; } } } dispStudentDetails(s+pos); } void dispTopperDetails(struct Student * s, int n) { printf("Overall Topper Details\n"); float max=0.0f; int pos,i; for(i=0;i<n;i++) { if(max<(s+i)->cgpa) { pos=i; max=(s+i)->cgpa; } } dispStudentDetails(s+pos); } void updateCGPA(struct Student * s){ s->cgpa=s->cgpa+0.5; } void printMenu(){ printf("Menu\n1)Display names of students from a particular year\n"); printf("2)Display names of students from a particular department\n"); printf("3)Display all details of the student having the highest CGPA\n"); printf("4)Display all details of the student from a particular department having the highest CGPA\n"); printf("5)Display all details of a particular student (Search by name)\n"); printf("6)Display all details of all students\n"); printf("7)Update CGPA of a particular student\n"); printf("8)Exit\n"); } int main(){ int n,i,choice; struct Student *a; printf("Enter the number of students\n"); scanf("%d",&n); a=(struct Student*)malloc(n*sizeof(struct Student)); for(int i=0;i<n;i++) { printf("Enter the details of student %d\n",i+1); printf("Enter name\n"); scanf("%s",(a+i)->name); printf("Enter department\n"); scanf("%s",(a+i)->department); printf("Enter year of study\n"); scanf("%d",&(a+i)->yearOfStudy); printf("Enter cgpa\n"); scanf("%f",&(a+i)->cgpa); } int year; char dept[100]; char nameSearch[100]; int flag=0; sortRecords(a,n); do { printMenu(); flag=0; printf("Enter your choice\n"); scanf("%d",&choice); switch(choice) { case 1: printf("Enter the year\n"); scanf("%d",&year); dispStudentNamesFromYear(a,year,n); break; case 2: printf("Enter the department\n"); scanf("%s",dept); dispStudentNamesFromDept(a,dept,n); break; //Fill in the code case 3: dispTopperDetails(a,n); break; //Fill in the code case 4: printf("Enter the department\n"); scanf("%s",dept); dispDeptTopperDetails(a,dept,n); break; case 5: printf("Enter the name\n"); scanf("%s",nameSearch); for(i=0;i<n;i++) {if(strcmp(nameSearch,(a+i)->name)==0) {flag=1; dispStudentDetails((a+i)); break; } } if(flag==0) printf("Student by name %s not found\n", nameSearch); break; //Fill in the code case 6: for(i=0;i<n;i++) { dispStudentDetails((a+i)); } break; //Fill in the codebreak; case 7: printf("Enter the name\n"); scanf("%s",nameSearch); for(i=0;i<n;i++) { if(strcmp((a+i)->name,nameSearch)==0) { updateCGPA(a+i); break; } } break; default: exit(0); //Fill in the code } }while(1); return 0; }