一組學生的資訊,由以下基本資訊構成:學號、姓名、性別、年齡、學業成績、操評構成。
(1)設計滿足上述需求的自定義結構 STU;
(2)從鍵盤輸入 30 個學生的基本資訊;
(3)統計并輸出男生學業成績及格率;
(4)統計并輸出小于 18 歲的女生總數。
下面是我自己寫的:有問題,大問題,而且卡住不會了
#include<stdio.h>
#define N 30
struct students
{
int num;//學號
char name[20];//姓名
int gender;//性別 男M,女F
int age;//年齡
float score;//成績
float grade;//操評
};
int main()
{
struct students stu[30];
int i;
float qualified=0;//合格//
float qualifiedf=0;//合格率//
for(i=0;i<30;i++)
{
scanf("%d %c %d %d %d %d",&stu[i].num,&stu[i].name,&stu[i].gender,&stu[i].age,&stu[i].score,&stu[i].grade);
}
for(i=0;i<30;i++)
{
if(stu[i].score>60&&stu[i].gender=='M')
qualified=qualified+1;
}
qualifiedf=qualified/30;
printf("%f",qualifiedf);
return 0;
}
uj5u.com熱心網友回復:
&stu[i].name這個不太對吧,用stu[i].name或者&stu[i].name[0]
uj5u.com熱心網友回復:
小于18女生總數:int count=0;
for(i=0;i<30;i++)
{
if(stu[i].age<18 && stu[i].gender=='F')
count++;
}
printf("%d\n", count);
uj5u.com熱心網友回復:
供參考:#include<stdio.h>
#define N 30
struct students
{
int num; //學號
char name[20];//姓名
// int gender; //性別 男M,女F
char gender; //性別 男M,女F
int age; //年齡
float score; //成績
float grade; //操評
};
int main()
{
struct students stu[N];//stu[30]
int i;
float qualified=0;//合格
float qualifiedf=0;//合格率
for(i=0;i<N;i++) //for(i=0;i<30;i++)
{
//scanf("%d %c %d %d %d %d",
scanf("%d %s %c %d %f %f",
&stu[i].num,stu[i].name,&stu[i].gender,&stu[i].age,&stu[i].score,&stu[i].grade);
//&stu[i].num,&stu[i].name,&stu[i].gender,&stu[i].age,&stu[i].score,&stu[i].grade);
}
for(i=0;i<N;i++)
{
//if(stu[i].score>60 && stu[i].gender=='M')
if(stu[i].score>=60 && stu[i].gender=='M')
qualified=qualified+1;
}
//qualifiedf=qualified/30;
qualifiedf=qualified/N;
printf("qualifiedf=%.2f\n",qualifiedf);
int count=0;
for(i=0;i<N;i++)
{
if(stu[i].age<18 && stu[i].gender=='F')// 小于18女生總數
count++;
}
printf("count=%d\n", count);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/249951.html
標籤:C語言
上一篇:求助
