怎么办,当输入的某个信息错误时,显示哪个错了,并重新输入。
我的想法是,当输入的某个信息错误时,显示哪个错了,并重新输入。一直没有想出来,请高手HELP.
/*定义销售员结构体*/
struct persons{
char p_Num[5];
char p_name[20];
char sex[2];
}p[4];
/*输入4个销售员信息*/
int person()
{
int i;
printf("销售员编号必须为5位,姓名必须为汉字,性别必须是男或女。若输入有误请重新输入。\n\n");
for(i=0;i<4;i++){
do{
printf("第%d销售员的信息:编号,姓名,性别)\n",i+1);
scanf("%s%s%s",p[i].p_Num,p[i].p_name,p[i].sex);
}while(judge_pbh(p[i].p_Num)==0||judge_pxm(p[i].p_name)==0||judge_pxb(p[i].sex)==0)
}
printf("\n");
return 1;
}
/*判断销售员编号是否为5位*/
int judge_pbh(char p_num)
{
if(strlen(p_num)!=5){
printf("销售员编号不为5位,请重新输入\n");
return 0;
}
return 1;
}
/*判断销售员姓名是否为汉字*/
int judge_pxm(char p_name[20])
{
int i;
for(i=0;p_name[i]!=0;i++){
if(p_name[i]<='阿'||p_name[i]>='做')
printf("姓名必须为汉字,请重新输入\n");
return 0;
}
return 1;
}
/*判断销售员性别是否为男女*/
int judge_pxb(char sex[2])
{
if(sex[2]!='男'||sex[2]!='女'){
// printf("销售员性别是必须为男或女,请重新输入\n");
return 0;
}
return 1;
}