这是一个程序段主要是一个注册的函数,我在机器上编译,没提示错误,可是一运行就不行在用户上家
了个为数和组成的判断可判断不管用,那位帮我看看啊!
#include <stdio.h>
#include <string.h>
struct pim //定义结构体个人信息
{
char name[10];
char passwd[20] ;
char passwd1[20] ;
};
struct pim x;
void zhuce()
{
int y=0,z=0;
printf("请输入要注册的用户名:(长度为10以内,由数字或密码字母组成)\n");
while(z==0)
{
scanf("%s",&x.name);
if(strlen(x.name)>10)
{
printf("您输入的名字太长,请重新输入:");
z=0;
}
else
{
for(int i=0;i<strlen(x.name);i++)
{
if((x.name[i] >= '0' && x.name[i] <= '9')||(x.name[i] >= 'a' &&
x.name[i]<='z')||(x.name[i]>='A' && x.name[i]<='Z'))
{
printf("您输入的用户名符合要求为:%s",x.name);
}
else
printf("用户名错误,重写");
}
}
}
}
[此贴子已经被作者于2007-5-9 21:06:05编辑过]
----------------解决方案--------------------------------------------------------
主函数没有 调用子程序的语句又 没有
你写的是不是C啊?????
----------------解决方案--------------------------------------------------------
这是一个程序段主要是一个注册的函数
看好是一个程序段。。。。。
----------------解决方案--------------------------------------------------------
printf("您输入的用户名符合要求为:%s",x.name);
每判断一个字符为合法上面的语句就要执行一次,应该改为判断完之后名字为合法才打印
还有你的循环控制条件不好
----------------解决方案--------------------------------------------------------
else
{
for(int i=0;i<strlen(x.name);i++)
{
if((x.name[i] >= '0' && x.name[i] <= '9')||(x.name[i] >= 'a' &&
x.name[i]<='z')||(x.name[i]>='A' && x.name[i]<='Z'))
{
printf("您输入的用户名符合要求为:%s",x.name);
}
else
printf("用户名错误,重写");
}
}
改为:
else
{ int i;
for(i=0;i<strlen(x.name);i++)
{
if((x.name[i] <'0' && x.name[i] > '9')&&(x.name[i] > 'a' &&
x.name[i]>'z')&&(x.name[i]<'A' && x.name[i]>'Z'))
{ /*若输入的字符不在0-9、a-z、A-Z之间,则退出循环,重新输入*/
printf("用户名错误,重写");
break;
}
}
if(i>=strlen(x.name))
{
printf("您输入的用户名符合要求为:%s",x.name);
z=1; /*中止while循环*/
}
}
还有:将
if(strlen(x.name)>10)
{
printf("您输入的名字太长,请重新输入:");
z=0;
}
中的z=0改为continue应该会比较好吧,或者是直接去掉.
----------------解决方案--------------------------------------------------------
scanf("%s",&x.name);
----------------解决方案--------------------------------------------------------
scanf("%s",&x.name);
你似乎活得还很好
----------------解决方案--------------------------------------------------------
反正死不了
----------------解决方案--------------------------------------------------------
4楼5楼的谢了
----------------解决方案--------------------------------------------------------
4楼5楼的谢了
孺子不可教也
----------------解决方案--------------------------------------------------------