练习1.编写一个程序,功能如下:
⑴ 输入若干人员的姓名及电话号码(8位),以字符“#”结束输入;
⑵ 当输入姓名时,能查找出该人的电话号码(如果没有此人,则显示未找到该记录)。
运行结果示例:(有一个人输出的部分没调好QAQ)
#include <stdio.h>
#include <string.h>
struct worker
{
char name[50];
char phone[20];
};
int main()
{
char c[50];
struct worker s[50];
int i, n;
printf("输入姓名及电话号码(以#结束):");
for (i = 0;; i++)
{
scanf("%s\n", s[i].name);//读入姓名
if (s[i].name[0]!='#')//对于姓名进行条件判断
{
scanf("%s\n", s[i].phone);
}
else
{
printf("\n");
break;
}
}
printf("\n");//读入姓名和电话号码
n = i;//i是循环执行的次数,进行了多少次循环就有多少个人
printf("输入要查找电话人的姓名:");
int flag=0;
scanf("%s", c);
printf("\n");
for (i = 0; i < n; i++)
{
if (strcmp(s[i].name, c) == 0)//两个字符串的ASCII代码一样
{
printf("电话号码: %s\n", s[i].phone);
flag = 1;//找到这个人将1赋值给flag ,flag的值为1说明找到了这个人
}
}
if (flag == 0) {//flag为零说明未找到
printf("查无此人");
}
return 0;
}
2
练习2.有N个学生,每个学生的数据包括学号、姓名、M门课的成绩,要求:
⑴ 从键盘输入N个学生的数据;
⑵ 求出每门课的平均成绩;
⑶ 求出每个学生的平均成绩;
⑷ 查找指定学号的成绩信息,有则输出成绩等信息,无则输出“查无此人”。
运行结果示例:
#include<stdio.h>
#include<iostream.h>
#include<string.h>
#include<string.h>
#define N 4
#define M 5
struct student
{
char num[12];
char name[20];
int score[M];
}stu[];
void input (struct student stu[])
{
int i,j;
for(i=0;i<N;i++)
{
cin>>stu[i].num>>stu[i].name;//读取每个学生的学号,姓名
for(j=0;j<M;j++)
cin>>stu[i].score[j]; //读取每个学生,每门课的成绩
}
cout<<endl;
}
void danke(struct student *p)
{
cout<<"输出单科结果:"<<endl;
int i;
float sum=0;
struct student *q=p;
for(i=0;i<M;i++)
{
cout<<"课程"<<i+1<<"平均分:";
for(p=q,sum=0;p<q+M;p++)
sum=sum+p->score[i];
cout<<sum/N<<endl;//每进行一次循环,输出一门课程的平均分
}
cout<<endl;
}
void everyone(struct student*p)
{
cout<<"输出学生结果:"<<endl;
int i,j;
float sum=0;
struct student *q=p;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
for(p=q,sum=0;p<q+M+1;p++)
{
sum=sum+p->score[j];
}
printf("学生%s的平均分:%f",stu[i].name,sum/5);
cout<<endl;
}
}
void seek(struct student *p)
{
int i,j;
char c[100];
cout<<"输入查成绩学生的学号:";
cin>>c;
for(i=0;i<N;i++)
if(strcmp(c,(p+i)->name)==0)//c必须定义为数组类型才符合strcmp函数的要求
{
cout<<"查询结果:"<<(p+i)->name<<endl;//第i个学生的姓名
cout<<"课1 课2 课3 课4 课5"<<endl;
for(j=0;j<M;j++)
cout<<(p+i)->score[j]<<" "<<endl;//依次输出第i个学生的第j门课程的成绩
break;
}
}
int main()
{
struct student stu[N];
input(stu);
danke(stu);
everyone(stu);
seek(stu);
return 0;
}
q