通讯录查询的问题,请教查错。
今天特郁闷,简单程序老是运行不出来,一运行就带出很多的“烫”。请教。
//C语言程序设计试题:先输入通讯录记录,再输入姓名检索。
#include "iostream.h"
#include "iomanip"
#include "string.h"
using namespace std;
struct REC //结构体定义
{
char name[10];
char sex;
char tel[12];
};
void main()
{
REC my_class[30]; //定义50条通讯录
printf("请输入学生总数:");
int n;scanf("%d",&n);
for(int i=0;i<n;i++) //先逐条输入通讯录作为资料
{
printf("请输入第%d位同学的姓名:",i+1);
scanf("%s",&my_class[i].name);
printf("\n性别:");
scanf("%c",&my_class[i].sex);
printf("\n电话号码:\n");
printf("%s",&my_class[i].tel);
}
printf("请输入要查询的同学姓名:\n");
char StuName[10];
scanf("%s",&StuName); //要查询的姓名
int a;
int cmp(char *a,char *b);
for(i=0;i<n;i++) //在通讯录中查找,如果有则输出该条通讯录
{
a=cmp(my_class[i].name,StuName); //查询的姓名与记录中姓名比较
if(a==0) //若查到,则显示该条记录
{
printf("姓名:%s 性别:%c 电话:%s\n",my_class[i].name,my_class[i].sex,my_class[i].tel);
break;
}
}
if(a!=0) //如果没有查到,则出错提示
printf("ERROR! 没有这个姓名!\n");
}
int cmp(char *a,char *b) //两个同长数组比较
{
for(int i=0;;i++)
if(a[i]-b[i]!=0)
{
return 1;break;
}
return 0;
}