谁能帮我做下这道C语言编程题,明天就要交了,好心人帮帮忙,谢谢了~~~~求救呀·~~~ 100
用一个函数将10个职工参加计算机等级考试的信息存入结构体数组,每个人的信息包括:考号、姓名、性别、成绩。成绩分为优秀、合格、不合格三个等级。用函数实现输出每个职工的信息,...
用一个函数将10个职工参加计算机等级考试的信息存入结构体数组,每个人的信息包括:考号、 姓名、性别、成绩。成绩分为优秀、合格、不合格三个等级。用函数实现输出每个职工的信息,用函数实现统计各个等级的人数。
好心人帮帮忙,明天就要交了,小弟先谢过了~
涉及到的知识点:结构体 数组 函数 循环等~ 写的好的直接G酬谢 展开
好心人帮帮忙,明天就要交了,小弟先谢过了~
涉及到的知识点:结构体 数组 函数 循环等~ 写的好的直接G酬谢 展开
5个回答
展开全部
#include <stdio.h>
#define N 3
typedef struct
{
char num[10];
char name[20];
char sex;
int judge;/*优秀 1 合格 0 不合格 -1*/
}info;
void setData(info fo[N])
{
int i;
for(i=0;i<N;i++)
{
system("cls");
printf("员工编号:");
scanf("%s",fo[i].num);
printf("员工姓名:");
scanf("%s",fo[i].name);
printf("员工性别(男:m,女:f):");
scanf(" %c",&fo[i].sex);
printf("成绩等级:");
scanf("%d",&fo[i].judge);
}
}
void display(info fo[N])
{
int i;
system("cls");
for(i=0;i<N;i++)
{
printf("员工编号:%s\n",fo[i].num);
printf("员工姓名:%s\n",fo[i].name);
printf("员工性别(男:m,女:f):%c\n",fo[i].sex);
printf("成绩等级:");
switch(fo[i].judge)
{
case 1:printf("优秀\n");break;
case 0:printf("合格\n");break;
case -1:printf("不合格\n");break;
}
printf("\n");
}
}
void Stat(info fo[N])
{
int count[3]={0},
i;
for(i=0;i<N;i++)
switch(fo[i].judge)
{
case 1:count[0]++;break;
case 0:count[1]++;break;
case -1:count[2]++;break;
}
printf("优秀人数:%d\n合格人数:%d\n不合格人数:%d\n",count[0],count[1],count[2]);
}
int main(void)
{
info fo[N];
setData(fo);
display(fo);
Stat(fo);
return 0;
}
#define N 3
typedef struct
{
char num[10];
char name[20];
char sex;
int judge;/*优秀 1 合格 0 不合格 -1*/
}info;
void setData(info fo[N])
{
int i;
for(i=0;i<N;i++)
{
system("cls");
printf("员工编号:");
scanf("%s",fo[i].num);
printf("员工姓名:");
scanf("%s",fo[i].name);
printf("员工性别(男:m,女:f):");
scanf(" %c",&fo[i].sex);
printf("成绩等级:");
scanf("%d",&fo[i].judge);
}
}
void display(info fo[N])
{
int i;
system("cls");
for(i=0;i<N;i++)
{
printf("员工编号:%s\n",fo[i].num);
printf("员工姓名:%s\n",fo[i].name);
printf("员工性别(男:m,女:f):%c\n",fo[i].sex);
printf("成绩等级:");
switch(fo[i].judge)
{
case 1:printf("优秀\n");break;
case 0:printf("合格\n");break;
case -1:printf("不合格\n");break;
}
printf("\n");
}
}
void Stat(info fo[N])
{
int count[3]={0},
i;
for(i=0;i<N;i++)
switch(fo[i].judge)
{
case 1:count[0]++;break;
case 0:count[1]++;break;
case -1:count[2]++;break;
}
printf("优秀人数:%d\n合格人数:%d\n不合格人数:%d\n",count[0],count[1],count[2]);
}
int main(void)
{
info fo[N];
setData(fo);
display(fo);
Stat(fo);
return 0;
}
展开全部
我不懂C语言,找了个例子感觉你可以参考一下:
#include <stdio.h>
typedef struct stu{
char no[20]; /*学号*/
char name[15]; /*姓名*/
int grade; /*成绩*/
}stu_inf;
void sort(stu_inf a[],int n)
{
int i, j, k;
stu_inf t; /*插入排序算法*/
for (i=1; i<n; i++) /*要选择的次数:1~n-1共n-1次*/
{
t = a[i]; /*暂存下标为i的数。下标从1开始*/
for (j=i-1; j>=0 && t.grade > a[j].grade ; j--) /*在它前面有序列中找插入位置。*/
a[j+1] = a[j]; /*如果满足条件就往后挪*/
a[j+1] = t; /*找到下标为i的数的放置位置*/
}
}
void main(void)
{
stu_inf a[20]; /*学生信息的结构数组*/
int i , n , ave = 0; /*ave保存总成绩*/
printf("请输入学生的数量:");
scanf("%d",&n);
for( i = 0 ; i < n ; i++)
{
printf("请依次输入学生的学号、姓名、成绩:");
scanf("%s%s%d",a[i].no,a[i].name,&a[i].grade);
}
sort(a,n); /*对数组进行排序*/
printf("成绩最好的学生为%s,学号为%s,成绩为%d\n",a[0].name,a[0].no,a[0].grade);
printf("成绩最差的学生为%s,学号为%s,成绩为%d\n",a[n-1].name,a[n-1].no,a[n-1].grade);
printf("以下为所有学生的信息\n学号\t姓名\t成绩\n");
for( i = 0 ; i < n ; i++)
{
printf("%s\t%s\t%d\n",a[i].no,a[i].name,a[i].grade);
ave += a[i].grade;
}
printf("平均成绩为%.2f\n", (float)(ave +0.0)/n); /*除法运算加0.0为小数除法*/
}
#include <stdio.h>
typedef struct stu{
char no[20]; /*学号*/
char name[15]; /*姓名*/
int grade; /*成绩*/
}stu_inf;
void sort(stu_inf a[],int n)
{
int i, j, k;
stu_inf t; /*插入排序算法*/
for (i=1; i<n; i++) /*要选择的次数:1~n-1共n-1次*/
{
t = a[i]; /*暂存下标为i的数。下标从1开始*/
for (j=i-1; j>=0 && t.grade > a[j].grade ; j--) /*在它前面有序列中找插入位置。*/
a[j+1] = a[j]; /*如果满足条件就往后挪*/
a[j+1] = t; /*找到下标为i的数的放置位置*/
}
}
void main(void)
{
stu_inf a[20]; /*学生信息的结构数组*/
int i , n , ave = 0; /*ave保存总成绩*/
printf("请输入学生的数量:");
scanf("%d",&n);
for( i = 0 ; i < n ; i++)
{
printf("请依次输入学生的学号、姓名、成绩:");
scanf("%s%s%d",a[i].no,a[i].name,&a[i].grade);
}
sort(a,n); /*对数组进行排序*/
printf("成绩最好的学生为%s,学号为%s,成绩为%d\n",a[0].name,a[0].no,a[0].grade);
printf("成绩最差的学生为%s,学号为%s,成绩为%d\n",a[n-1].name,a[n-1].no,a[n-1].grade);
printf("以下为所有学生的信息\n学号\t姓名\t成绩\n");
for( i = 0 ; i < n ; i++)
{
printf("%s\t%s\t%d\n",a[i].no,a[i].name,a[i].grade);
ave += a[i].grade;
}
printf("平均成绩为%.2f\n", (float)(ave +0.0)/n); /*除法运算加0.0为小数除法*/
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#define MAXCHAR 10
struct staff
{
int id;
char name[MAXCHAR];
int sex;
double score;
int grade;//0,优秀;1,合格;2,不合格
}
int deal(struct member[],int cnt,int gcnt[])
{
gcnt[0]=0;gcnt[1]=0;gcnt[2]=0;
for(int i=0;i<cnt;i++)
{
if(member[i].score>=90)
{
gcnt[0]++;
}
else if(member[i].score>=60)
{
gcnt[1]++;
}
else
{
gcnt[2]++;
}
}
return 0;
}
int build(struct member[],int cnt)
{
for(int i=0;i<cnt;i++)
{
scanf("%d",member[i].id);
memset(member[i].name,MAXCHAR,0);
scanf("%s",member[i].name);
scanf("%d",member[i].sex);
scanf("%3.1f",member[i].score);
if(member[i].score>=90)
{
member[i].grade=0;
}
else if(member[i].score>=60)
{
member[i].grade=1;
}
else
{
member[i].grade=2;
}
}
return 0;
}
void output(struct member[],int cnt)
{
for(int i=0;i<cnt;i++)
{
printf("考号:%d",member[i].id);
printf("姓名:%s",member[i].name);
if(member[i].sex==0)
printf("性别:男");
else
printf("性别:女");
printf("分数:%3.2f",member[i].score);
if(member[i].grade==0)
printf("结论:优");
else if(member[i].grade==1)
printf("性别:及格");
else
printf("性别:不及格");
}
main()
{
int gcnt[3];
staff member[10];
build(member,10);
deal(member,10,gcnt);
output(member,10);
}
struct staff
{
int id;
char name[MAXCHAR];
int sex;
double score;
int grade;//0,优秀;1,合格;2,不合格
}
int deal(struct member[],int cnt,int gcnt[])
{
gcnt[0]=0;gcnt[1]=0;gcnt[2]=0;
for(int i=0;i<cnt;i++)
{
if(member[i].score>=90)
{
gcnt[0]++;
}
else if(member[i].score>=60)
{
gcnt[1]++;
}
else
{
gcnt[2]++;
}
}
return 0;
}
int build(struct member[],int cnt)
{
for(int i=0;i<cnt;i++)
{
scanf("%d",member[i].id);
memset(member[i].name,MAXCHAR,0);
scanf("%s",member[i].name);
scanf("%d",member[i].sex);
scanf("%3.1f",member[i].score);
if(member[i].score>=90)
{
member[i].grade=0;
}
else if(member[i].score>=60)
{
member[i].grade=1;
}
else
{
member[i].grade=2;
}
}
return 0;
}
void output(struct member[],int cnt)
{
for(int i=0;i<cnt;i++)
{
printf("考号:%d",member[i].id);
printf("姓名:%s",member[i].name);
if(member[i].sex==0)
printf("性别:男");
else
printf("性别:女");
printf("分数:%3.2f",member[i].score);
if(member[i].grade==0)
printf("结论:优");
else if(member[i].grade==1)
printf("性别:及格");
else
printf("性别:不及格");
}
main()
{
int gcnt[3];
staff member[10];
build(member,10);
deal(member,10,gcnt);
output(member,10);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
leave@LEAVE:~/test$ gcc 1.c -o 1
leave@LEAVE:~/test$ ./1
请输入第1名职工的工号:1
请输入第1名职工的名字:你好
请输入第1名职工的性别 男-1,女-2:1
请输入第1名职工的成绩:58
请输入第2名职工的工号:2
请输入第2名职工的名字:号
请输入第2名职工的性别 男-1,女-2:3
请输入第2名职工的成绩:90
请输入第3名职工的工号:3
请输入第3名职工的名字:名密码
请输入第3名职工的性别 男-1,女-2:2
请输入第3名职工的成绩:100
请输入第4名职工的工号:4
请输入第4名职工的名字:就看见
请输入第4名职工的性别 男-1,女-2:1
请输入第4名职工的成绩:101
请输入第5名职工的工号:5
请输入第5名职工的名字:及
请输入第5名职工的性别 男-1,女-2:1
请输入第5名职工的成绩:0
请输入第6名职工的工号:6
请输入第6名职工的名字:999
请输入第6名职工的性别 男-1,女-2:2
请输入第6名职工的成绩:99
请输入第7名职工的工号:7
请输入第7名职工的名字:你会死的发
请输入第7名职工的性别 男-1,女-2:1
请输入第7名职工的成绩:66
请输入第8名职工的工号:8
请输入第8名职工的名字:考核考核
请输入第8名职工的性别 男-1,女-2:1
请输入第8名职工的成绩:33
请输入第9名职工的工号:9
请输入第9名职工的名字:适当放宽
请输入第9名职工的性别 男-1,女-2:1
请输入第9名职工的成绩:88
请输入第10名职工的工号:10
请输入第10名职工的名字:送到附近算了
请输入第10名职工的性别 男-1,女-2:1
请输入第10名职工的成绩:70
优秀5人,合格2人,不合格3人leave@LEAVE:~/test$leave@LEAVE:~/test$ gcc 1.c -o 1
leave@LEAVE:~/test$ ./1
请输入第1名职工的工号:1
请输入第1名职工的名字:你好
请输入第1名职工的性别 男-1,女-2:1
请输入第1名职工的成绩:58
请输入第2名职工的工号:2
请输入第2名职工的名字:号
请输入第2名职工的性别 男-1,女-2:3
请输入第2名职工的成绩:90
请输入第3名职工的工号:3
请输入第3名职工的名字:名密码
请输入第3名职工的性别 男-1,女-2:2
请输入第3名职工的成绩:100
请输入第4名职工的工号:4
请输入第4名职工的名字:就看见
请输入第4名职工的性别 男-1,女-2:1
请输入第4名职工的成绩:89
请输入第5名职工的工号:5
请输入第5名职工的名字:及
请输入第5名职工的性别 男-1,女-2:1
请输入第5名职工的成绩:0
请输入第6名职工的工号:6
请输入第6名职工的名字:999
请输入第6名职工的性别 男-1,女-2:2
请输入第6名职工的成绩:99
请输入第7名职工的工号:7
请输入第7名职工的名字:你会死的发
请输入第7名职工的性别 男-1,女-2:1
请输入第7名职工的成绩:66
请输入第8名职工的工号:8
请输入第8名职工的名字:考核考核
请输入第8名职工的性别 男-1,女-2:1
请输入第8名职工的成绩:33
请输入第9名职工的工号:9
请输入第9名职工的名字:适当放宽
请输入第9名职工的性别 男-1,女-2:1
请输入第9名职工的成绩:88
请输入第10名职工的工号:10
请输入第10名职工的名字:送到附近算了
请输入第10名职工的性别 男-1,女-2:1
请输入第10名职工的成绩:70
优秀5人,合格2人,不合格3人
leave@LEAVE:~/test$
leave@LEAVE:~/test$ more 1.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXNUM 10
struct PERSON_INFO
{
int p_id;
char p_name[256];
int p_sex;
int p_score;
}person_info[10];
enum degree
{
BUHEGE=0,
BUHEGE1,
BUHEGE2,
BUHEGE3,
BUHEGE4,
BUHEGE5,
HEGE,
HEGE1,
YOUXIU,// 80往上为优秀
YOUXIU1,
YOUXIU2
};
int main(void)
{
int i;
int buhege = 0;
int hege = 0;
int youxiu = 0;
for(i=0;i<MAXNUM;i++)
{
printf("请输入第%d名职工的工号:",i+1);
scanf("%d",&person_info[i].p_id);
printf("请输入第%d名职工的名字:",i+1);
scanf("%s",person_info[i].p_name);
printf("请输入第%d名职工的性别 男-1,女-2:",i+1);
scanf("%d",&person_info[i].p_sex);
if((person_info[i].p_sex > 2)||(person_info[i].p_sex < 1))
{
printf("你输入的性别:%d 在1或者2之外,请重新输入!\n",person_info[i].p_sex);
printf("请输入第%d名职工的性别 男-1,女-2:",i+1);
scanf("%d",&person_info[i].p_sex);
}
printf("请输入第%d名职工的成绩:",i+1);
scanf("%d",&person_info[i].p_score);
if((person_info[i].p_score > 100)||(person_info[i].p_score < 0))
{
printf("你输入的成绩:%d 在0-100之外,请重新输入!\n",person_info[i].p_score);
printf("请输入第%d名职工的成绩:",i+1);
scanf("%d",&person_info[i].p_score);
}
}
for (i=0;i<MAXNUM;i++)
{
switch(person_info[i].p_score/10)
{
case BUHEGE:
case BUHEGE1:
case BUHEGE2:
case BUHEGE3:
case BUHEGE4:
case BUHEGE5:
buhege++;
break;
case HEGE:
case HEGE1:
hege++;
break;
case YOUXIU:
case YOUXIU1:
case YOUXIU2:
youxiu++;
break;
default:
printf("data is error!");
break;
}
}
printf("优秀%d人,合格%d人,不合格%d人\n",youxiu,hege,buhege);
return 0;
}
leave@LEAVE:~/test$ gcc 1.c -o 1
leave@LEAVE:~/test$ ./1
请输入第1名职工的工号:1
请输入第1名职工的名字:你好
请输入第1名职工的性别 男-1,女-2:1
请输入第1名职工的成绩:58
请输入第2名职工的工号:2
请输入第2名职工的名字:号
请输入第2名职工的性别 男-1,女-2:3
请输入第2名职工的成绩:90
请输入第3名职工的工号:3
请输入第3名职工的名字:名密码
请输入第3名职工的性别 男-1,女-2:2
请输入第3名职工的成绩:100
请输入第4名职工的工号:4
请输入第4名职工的名字:就看见
请输入第4名职工的性别 男-1,女-2:1
请输入第4名职工的成绩:101
请输入第5名职工的工号:5
请输入第5名职工的名字:及
请输入第5名职工的性别 男-1,女-2:1
请输入第5名职工的成绩:0
请输入第6名职工的工号:6
请输入第6名职工的名字:999
请输入第6名职工的性别 男-1,女-2:2
请输入第6名职工的成绩:99
请输入第7名职工的工号:7
请输入第7名职工的名字:你会死的发
请输入第7名职工的性别 男-1,女-2:1
请输入第7名职工的成绩:66
请输入第8名职工的工号:8
请输入第8名职工的名字:考核考核
请输入第8名职工的性别 男-1,女-2:1
请输入第8名职工的成绩:33
请输入第9名职工的工号:9
请输入第9名职工的名字:适当放宽
请输入第9名职工的性别 男-1,女-2:1
请输入第9名职工的成绩:88
请输入第10名职工的工号:10
请输入第10名职工的名字:送到附近算了
请输入第10名职工的性别 男-1,女-2:1
请输入第10名职工的成绩:70
优秀5人,合格2人,不合格3人leave@LEAVE:~/test$leave@LEAVE:~/test$ gcc 1.c -o 1
leave@LEAVE:~/test$ ./1
请输入第1名职工的工号:1
请输入第1名职工的名字:你好
请输入第1名职工的性别 男-1,女-2:1
请输入第1名职工的成绩:58
请输入第2名职工的工号:2
请输入第2名职工的名字:号
请输入第2名职工的性别 男-1,女-2:3
请输入第2名职工的成绩:90
请输入第3名职工的工号:3
请输入第3名职工的名字:名密码
请输入第3名职工的性别 男-1,女-2:2
请输入第3名职工的成绩:100
请输入第4名职工的工号:4
请输入第4名职工的名字:就看见
请输入第4名职工的性别 男-1,女-2:1
请输入第4名职工的成绩:89
请输入第5名职工的工号:5
请输入第5名职工的名字:及
请输入第5名职工的性别 男-1,女-2:1
请输入第5名职工的成绩:0
请输入第6名职工的工号:6
请输入第6名职工的名字:999
请输入第6名职工的性别 男-1,女-2:2
请输入第6名职工的成绩:99
请输入第7名职工的工号:7
请输入第7名职工的名字:你会死的发
请输入第7名职工的性别 男-1,女-2:1
请输入第7名职工的成绩:66
请输入第8名职工的工号:8
请输入第8名职工的名字:考核考核
请输入第8名职工的性别 男-1,女-2:1
请输入第8名职工的成绩:33
请输入第9名职工的工号:9
请输入第9名职工的名字:适当放宽
请输入第9名职工的性别 男-1,女-2:1
请输入第9名职工的成绩:88
请输入第10名职工的工号:10
请输入第10名职工的名字:送到附近算了
请输入第10名职工的性别 男-1,女-2:1
请输入第10名职工的成绩:70
优秀5人,合格2人,不合格3人
leave@LEAVE:~/test$
leave@LEAVE:~/test$ more 1.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXNUM 10
struct PERSON_INFO
{
int p_id;
char p_name[256];
int p_sex;
int p_score;
}person_info[10];
enum degree
{
BUHEGE=0,
BUHEGE1,
BUHEGE2,
BUHEGE3,
BUHEGE4,
BUHEGE5,
HEGE,
HEGE1,
YOUXIU,// 80往上为优秀
YOUXIU1,
YOUXIU2
};
int main(void)
{
int i;
int buhege = 0;
int hege = 0;
int youxiu = 0;
for(i=0;i<MAXNUM;i++)
{
printf("请输入第%d名职工的工号:",i+1);
scanf("%d",&person_info[i].p_id);
printf("请输入第%d名职工的名字:",i+1);
scanf("%s",person_info[i].p_name);
printf("请输入第%d名职工的性别 男-1,女-2:",i+1);
scanf("%d",&person_info[i].p_sex);
if((person_info[i].p_sex > 2)||(person_info[i].p_sex < 1))
{
printf("你输入的性别:%d 在1或者2之外,请重新输入!\n",person_info[i].p_sex);
printf("请输入第%d名职工的性别 男-1,女-2:",i+1);
scanf("%d",&person_info[i].p_sex);
}
printf("请输入第%d名职工的成绩:",i+1);
scanf("%d",&person_info[i].p_score);
if((person_info[i].p_score > 100)||(person_info[i].p_score < 0))
{
printf("你输入的成绩:%d 在0-100之外,请重新输入!\n",person_info[i].p_score);
printf("请输入第%d名职工的成绩:",i+1);
scanf("%d",&person_info[i].p_score);
}
}
for (i=0;i<MAXNUM;i++)
{
switch(person_info[i].p_score/10)
{
case BUHEGE:
case BUHEGE1:
case BUHEGE2:
case BUHEGE3:
case BUHEGE4:
case BUHEGE5:
buhege++;
break;
case HEGE:
case HEGE1:
hege++;
break;
case YOUXIU:
case YOUXIU1:
case YOUXIU2:
youxiu++;
break;
default:
printf("data is error!");
break;
}
}
printf("优秀%d人,合格%d人,不合格%d人\n",youxiu,hege,buhege);
return 0;
}
leave@LEAVE:~/test$ gcc 1.c -o 1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我张艺钟 你是?你采纳哪个了?我参考一个 避免冲突记0分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |