结构
来源:互联网 发布:怎样更改公用网络 编辑:程序博客网 时间:2024/04/30 06:59
1.编写一个函数print,打印一个学生的成绩数组,该数组中5个学生的记录,每个记录包括num、name、score[3],用主函数输入这些记录,用print函数输出这些记录。
#include<stdio.h>
#define NAME_LEN 20
#define N 5
struct record
{
int num;
char name[NAME_LEN+1];
char score[3];
}student[N];
void print(void);
int main(void)
{
int i;
for(i=0;i<N;i++)
{
printf("Enter student num:");//输入学生学号
scanf("%d",&student[i].num);
printf("Enter student name:");
scanf("%s",&student[i].name);
printf("Enter student score:");
scanf("%d",&student[i].score);
printf("/n");
}
print();
}
void print(void)
{
int i;
printf("Student num/tStudent name/tStudent score/n");
for(i=0;i<N;i++)
{
printf("/t%d/t/t%s/t/t%d/n",student[i].num,student[i].name,student[i].score);
}
}
2.在上题的基础上,编写一个函数input,用来输入5个学生的数据记录。
#include<stdio.h>
#define NAME_LEN 20
#define N 5
struct record
{
int num;
char name[NAME_LEN+1];
char score[3];
}student[N];
void input(void);
void print(void);
int main(void)
{
input();
print();
}
void input(void)
{
int i;
for(i=0;i<N;i++)
{
printf("Enter student num:");//输入学生学号
scanf("%d",&student[i].num);
printf("Enter student name:");
scanf("%s",&student[i].name);
printf("Enter student score:");
scanf("%d",&student[i].score);
printf("/n");
}
}
void print(void)
{
int i;
printf("Student num/tStudent name/tStudent score/n");
for(i=0;i<N;i++)
{
printf("/t%d/t/t%s/t/t%d/n",student[i].num,student[i].name,student[i].score);
}
}
3.有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
#include<stdio.h>
#define NAME_LEN 20
#define N 3
struct record
{
int num;
char name[NAME_LEN+1];
int score[3];
int ave;//平均成绩
}student[N];
void input(void);
void print(void);
int main(void)
{
int i;
int max=0;
input();//输入数据
for(i=0;i<N;i++)//求每个学生的平均值
student[i].ave=(student[i].score[0]+student[i].score[1]+student[i].score[2])/3;
for(i=1;i<N;i++)
if(max<student[i].ave)
max=i;
print();
printf("The highest score is:/nThe student's num is:%d/nname is:%s/nscore are:%d %d %d/naverage score is:%d/n"
,student[max].num,student[max].name,student[max].score[0],student[max].score[1],student[max].score[2],student[max].ave);
}
void input(void)
{
int i;
for(i=0;i<N;i++)
{
printf("Enter student num:");//输入学生学号
scanf("%d",&student[i].num);
printf("Enter student name:");
scanf("%s",&student[i].name);
printf("Enter student score:");
scanf("%d%d%d",&student[i].score[0],&student[i].score[1],&student[i].score[2]);
printf("/n");
}
}
void print(void)
{
int i;
printf("Student num/tStudent name/tStudent score/tStudent average/n");
for(i=0;i<N;i++)
{
printf("/t%d/t/t%s/t%d %d %d/t%d/n",student[i].num,student[i].name,student[i].score[0],student[i].score[1],
student[i].score[1],student[i].ave);
}
printf("The highest score is:");
}
4.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。
算法思想:用辗转相除法求最大公约数,最小公倍数=uv/最大公约数。
#include<stdio.h>
int hcf(int u,int v);
int icd(int u,int v);
int main(void)
{
int u,v;
printf("Enter two number:");
scanf("%d%d",&u,&v);
printf("The hcf of %d and %d is:%d/n",u,v,hcf(u,v));
printf("The icd of %d and %d is:%d/n",u,v,icd(u,v));
return 0;
}
int hcf(int u,int v)
{
int r=u%v,temp;
if(u<v)//使得u>v
{
temp=u;
u=v;
v=temp;
}
if(u%v==0)
return v;
else
return hcf(v,u%v);//使用递归的方法实现求最大公约数
}
int icd(int u,int v)
{
return u*v/hcf(u,v);
}
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 如何使用图片做DLG背景
- "SQL1218N 在缓冲池 4096 中当前没有任何页面可用"问题的解决(由于隐藏的buffer引发的血案)
- 基于visual C#2010开发Windows7 AeroGlass特效
- 8个8运算=1999
- 验证码代码
- 结构
- Netfilter connection tracking and nat helper modules
- 《黑马程序员》自动装箱拆箱 (享元模式)
- 多级树形菜单的实现
- 正则表达式和数组, 字符操作 in JavaScript
- Actionscript3 TextFile的TextEvent事件
- 游戏编程基础
- 南京鼓楼区江滨新寓小区出租房间1间
- [读书]少年中国之精神