/*学生信息查找程序*/
#include
#include
int main()
{
int i,j=0,num,flag=0;
int stdnum[2];
char bir[2];
char name[2];
char major[2];
for(i=0;i<2;i++)
{
printf("请输入学生%d的信息\n",i+1);
printf("姓名:");
scanf("%s",&name[i]);
printf("出生日期:");
scanf("%s",&bir[i]);
printf("学号:");
scanf("%d",&stdnum[i]);
printf("专业:");
scanf("%s",&major[i]);
}
printf("请输入要查找的学生的学号:");
do
{
scanf("%d",&num);
while(j<2)
{
if(num==stdnum[j])
flag=1;
if(flag)
{
printf("\n姓名:%s",name[j]);
printf("\n出生日期:%s",bir[j]);
printf("\n专业:%s",major[j]);
}
j++;
}
if(!flag) printf("学号不存在!请重新输入!");
}while(flag==0);
system("PAUSE");
return 0;
}
你数组用得不对。char name[2];保存的是两个字符的长度,实际就一个字符加一个‘\0’,你应该在前面加个指针
/*学生信息查找程序*/
#include "stdio.h"
#include "stdlib.h"
#include
#include
using namespace std;
int main()
{
int i,num,flag=0;
int nTemp=0;
char cTemp;
vector stdnum;
vector<char> birthday;
vector name;
vector major;
stdnum.clear();
birthday.clear();
name.clear();
major.clear();
for(i=0;i<2;i++)
{
printf("请输入学生%d的信息\n",i+1);
printf("姓名:");
scanf("%s",&cTemp);
name.push_back(cTemp);
printf("出生日期:");
scanf("%s",&cTemp);
birthday.push_back(cTemp);
printf("学号:");
scanf("%d",&nTemp);
stdnum.push_back(nTemp);
printf("专业:");
scanf("%s",&cTemp);
major.push_back(cTemp);
}
printf("请输入要查找的学生的学号:");
scanf("%d",&num);
for (std::vector< int >::iterator itr = stdnum.begin(); itr != stdnum.end(); ++itr)
{
if (num==*itr)
{
printf("学号存在!");
flag = 1;
}
}
if(!flag) printf("学号不存在!请重新输入!");
/*
vector<int>::iterator result = find( stdnum.begin( ), stdnum.end( ), num ); //查找num
if ( result == stdnum.end( ) ) //没找到
{
printf("学号不存在!请重新输入!");
}
else //找到
{
printf("存在学号!");
}
*/
system("PAUSE");
return 0;
}
//自己琢磨一下怎么把name取出来