滑稽搞笑舞龙:C语言字符串比较

来源:百度文库 编辑:高校问答 时间:2024/04/29 03:49:32
输入五个学生的字符数组编号,再按大小输出,使用strcmp比较,它都有自己函数,要调用三个函数(自定义函数弄输入、比较、输出);要运用指针 *

1.题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出
平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
1.程序分析:
2.程序源代码:
#include "stdio.h"
struct student
{ char num[6];
char name[8];
int score[3];
float avr;
} stu[5];
main()
{int i,j,sum;
FILE *fp;
/*input*/
for(i=0;i<5;i++)
{ printf("\n please input No. %d score:\n",i);
printf("stuNo:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
for(j=0;j<3;j++)
{ printf("score %d.",j+1);
scanf("%d",&stu[i].score[j]);
sum+=stu[i].score[j]

2.
一个学习小组有5个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。

课程 成绩姓名 Math C DBASE
张 80 75 92
王 61 65 71
李 59 63 70
赵 85 87 90
周 76 77 85

可设一个二维数组a[5][3]存放五个人三门课的成绩。再设一个一维数组v[3]存放所求得各分科平均成绩,设变量l为全组各科总平均成绩。编程如下:

void main()
{
int i,j,s=0,l,v[3],a[5][3];
printf("input score\n");
for(i=0;i<3;i++){
for(j=0;j<5;j++)
{ scanf("%d",&a[j][i]);
s=s+a[j][i];}
v[i]=s/5;
s=0;
}
l=(v[0]+v[1]+v[2])/3;
printf("math:%d\nc languag:%d\ndbase:%d\n",v[0],v[1],v[2]);
printf("total:%d\n",l);
} for(i=0;j<3;i++)
for(j=0;j<5;j++)
{ scanf("%d",&a[j][i]);
s=s+a[j][i];}
v[i]=s/5;
s=0;
}
l=(v[0]+v[1]+v[2])/3;

程序中首先用了一个双重循环。 在内循环中依次读入某一门课程的各个学生的成绩,并把这些成绩累加起来,退出内循环后再把该累加成绩除以5送入v[i]之中,这就是该门课程的平均成绩。外循环共循环三次,分别求出三门课各自的平均成绩并存放在v数组之中。退出外循环之后,把v[0],v[1],v[2]相加除以3即得到各科总平均成绩。最后按题意输出各个成绩。

希望有帮助

#include<string.h>
void input_info(string stu_no,int n)
{
for(int i=0;i<n;i++) {
printf("请输入第%d个学生的编号\n",i);
scanf("%s",stu_no[i]);
}
}

void output_info(string stu_no,int n)
{
string stu_no[5];
printf("处理后的信息如下:\n");
for(int i=0;i<n;i++) {
printf("%s\b",stu_no[i]);
}
}

void order(string stu_no[],int n)
{
string a;
for(int i=0;i<n;i++)
for(int j=i;j<n;j++){
if(strcmp(stu_no[i]>str_no[j]){
a=stu_no[i];
stu_no[i]=stu_no[j];
stu_no[j]=a;
}
}
}

void main()
{
string stu_no[5];
input_info(stu_no,5);
order(stu_no,5);
output(stu_no,5);
}

问题不难
指针问题不好办那
毕竟我是初学啊
先回一个,过几天看看