#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 3
struct mail{
char name[N][10];
int number[10];
}mai;
void Input(struct mail *p,int n)
{
int i;
for (i=0;i<n;i++)
{
printf("请输入第%d个学生的姓名\n", i + 1);
gets(p[i].name);
printf("请输入第%d个学生的号码\n", i + 1);
scanf("%d",p[i].number);
}
}
void search(struct mail *p,char name1[])
{
int i,k;
for(i=0;i<N;i++)
{
if(strcmp(p[i].name,name1)==0)
{
k=i;
printf("%s\t%s\n","name","number");
printf("%s\t%d\n",p[k].name,p[k].number);
}
else if(*name1==" "||*name1=="\n")
{
printf("%s\t%s\n","name","number");
for(i=0;i<N;i++)
{
printf("%s\t%d\n",p[i].name,p[i].number);
}
}
}
}
int main()
{
struct mail *s;
Input(s,8);
char name[2][3];
gets(name);
search(s,name);
}
问题很大,name是二维数组,这里你应该是p->name[i],前面,后面十个字节存人对吧
name是二维数组,你当做一维数组来操作了。
你得加个while循环,不然肯定停止