谁能帮我做下这道C语言编程题,明天就要交了,好心人帮帮忙,谢谢了~~~~求救呀·~~~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁能帮我做下这道C语言编程题,明天就要交了,好心人帮帮忙,谢谢了~~~~求救呀·~~~相关的知识,希望对你有一定的参考价值。

用一个函数将10个职工参加计算机等级考试的信息存入结构体数组,每个人的信息包括:考号、 姓名、性别、成绩。成绩分为优秀、合格、不合格三个等级。用函数实现输出每个职工的信息,用函数实现统计各个等级的人数。
好心人帮帮忙,明天就要交了,小弟先谢过了~

涉及到的知识点:结构体 数组 函数 循环等~ 写的好的直接G酬谢

#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;
参考技术A 我不懂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为小数除法*/
参考技术B #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);

参考技术C 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
参考技术D 我张艺钟 你是?你采纳哪个了?我参考一个 避免冲突记0分

大神帮我做下这个题要用C语言不要C++

http://baobao.baidu.com/question/9aba706e437305e0b1c98c73af45448e.html?18/Uf=sMDs http://baobao.baidu.com/question/5d97858cc99d9f40d326e7c609b2ccc1.html?2017.12.04qDc=881 http://baobao.baidu.com/question/cd61ec49a3dff3a8b0e748659b974b0d.P9A63 http://baobao.baidu.com/question/9d26b69817116f38f2ca019862fae844.html?83/et=o367 http://baobao.baidu.com/question/6f4152263bfa604d7e4fdb98ca8e0155.cznYR

以上是关于谁能帮我做下这道C语言编程题,明天就要交了,好心人帮帮忙,谢谢了~~~~求救呀·~~~的主要内容,如果未能解决你的问题,请参考以下文章

帮我做下

大神帮我做下这个题要用C语言不要C++

会的帮做下!

C语言的指针传递,指针的指针的问题,谁能帮我分析分析这个问题?

谁能帮我做要求工作?

求助,哪个帮我翻译一下