VC++改错

来源:百度知道 编辑:UC知道 时间:2024/05/23 10:52:01
#include<iostream.h>
struct message
{
char name[15];
char sex;
int num;
char add;
};
void main()
{
message m[2];
char NAME[15];
for(int i=0;i<2;i++)
cin>>m[i].name>>m[i].sex>>m[i].num>>m[i].add;
cin>>NAME;
for(int n=0;n<2;n++)
{ if(m[i].name[15]==NAME[15])
cout<<"找到";
else
cout<<"未找到";
break;
}}
这到题的是这么要求的:建立一个简单的通讯录查询系统。每人的记录包括姓名,性别,电话号码和地址等项内容。要求用结构体类型来描述记录。当用户给出某人的姓名时,能输出“找到”或“未找到”的信息。

#include<iostream.h>
#include <string.h>

struct message
{
char name[15];
char sex;
int num;
char add;
};

void main()
{
message m[2];
char NAME[15];
for(int i=0;i<2;i++)
cin>>m[i].name>>m[i].sex>>m[i].num>>m[i].add;
cin>>NAME;
for(int n=0;n<2;n++)
{
if( 0 == strcmp( m[i].name, NAME ) )
cout<<"找到";
else
cout<<"未找到";
break;
}
}

if(m[i].name[15]==NAME[15])
这句话的相等不能这么判断
首先长度为15的数组(例如c[15])最后一个元素其实是n[14]

其次,数组判等要用循环从数组的第一个元素比较到最后一个元素
这里就应该是
for(int p = 0; p < 15; p++){
if(m[i].name[p]!=NAME[p]){
cout<<"未找到";
exit(1);
}
else
continue;
}
cout << "找到";

#include<iostream.h>
#include<string.h>
struct message
{