Write a C program to accept records of the different states using array of structures. The structure should contain char state, population, literacy rate, and income. Display the state whose literacy rate is highest and whose income is highest.
Problem to display the highest literate rate and the highest income of a state using array of structures
#include<stdio.h> #define M 50 struct state { char name[50]; long int population; float literacyRate; float income; }st[M]; /* array of structure */ int main() { int i,n,ml,mi,maximumLiteracyRate, maximumIncome; float rate; ml = mi =-1; maximumLiteracyRate = maximumIncome = 0; printf("Enter how many states:"); scanf("%d",&n); for(i=0;i<n;i++) { printf("\nEnter state %d details :",i); printf("\n\nEnter state name : "); scanf("%s",&st[i].name); printf("\nEnter total population : "); scanf("%ld",&st[i].population); printf("\nEnter total literary rate : "); scanf("%f",&rate); st[i].literacyRate = rate; printf("\nEnter total income : "); scanf("%f",&st[i].income); } for(i=0;i<n;i++) { if(st[i].literacyRate >= maximumLiteracyRate) { maximumLiteracyRate = st[i].literacyRate; ml++; } if(st[i].income > maximumIncome) { maximumIncome = st[i].income; mi++; } } printf("\nState with highest literary rate :%s",st[ml].name); printf("\nState with highest income :%s",st[mi].name); return(0); }
Output :
Enter how many states:3 Enter state 0 details : Enter state name : Maharashtra Enter total population : 1000 Enter total literary rate : 90 Enter total income : 10000 Enter state 1 details : Enter state name : Goa Enter total population : 300 Enter total literary rate : 94 Enter total income : 5000 Enter state 2 details : Enter state name : Gujrat Enter total population : 900 Enter total literary rate : 78 Enter total income : 7000 The state whose literary rate is the highest : Goa The state whose income is the highest : Maharashtra
Explanation of Program :
Firstly accept total number of states so that we can accept all the details using the for loop.
for(i=0;i<n;i++) { printf("\nEnter state %d details :",i); printf("\n\nEnter state name : "); scanf("%s",&st[i].name); printf("\nEnter total population : "); scanf("%ld",&st[i].population); printf("\nEnter total literary rate : "); scanf("%f",&rate); st[i].literacyRate = rate; printf("\nEnter total income : "); scanf("%f",&st[i].income); }
Now we are checking for the maximum value.
if(st[i].literacyRate >= maximumLiteracyRate) { maximumLiteracyRate = st[i].literacyRate; ml++; }
Inside the for loop we are checking the the literacy value with the maximum value.If current literacy rate is greater than the current maximum value then we are modifying the current maximum value.
No comments:
Post a Comment