通讯录查询的问题,请教查错。

neil2009就是李工 2007-06-25 08:44:30
今天特郁闷,简单程序老是运行不出来,一运行就带出很多的“烫”。请教。
//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;
}
...全文
141 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你真是大——大好人啊,开心,感谢你。
lightnut 2007-06-25
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct REC //结构体定义
{
char name[10];
char sex;
char tel[12];
};

int cmp(char *a,char *b);

int 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);

getchar(); //吸收前面结束时输入的回车'\n'
printf("\n性别:");
scanf("%c",&my_class[i].sex);

printf("\n电话号码:");
scanf("%s",my_class[i].tel);
}


printf("请输入要查询的同学姓名:\n");
char StuName[10];
scanf("%s",StuName); //要查询的姓名

int a;
for(int 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");

system("pause");
return 0;
}

int cmp(char *a,char *b) //两个同长数组比较
{
int n = strlen(a);
for(int i=0;i<n;i++) {
if( (a[i]-b[i])!=0)
{
return 1;break;
}
}
return 0;
}

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧