#include<stdio.h>
#include<stdlib.h>
int main()
{
char ch[20],i,n;
scanf("%d",&n);
gets(ch);
if(0<=ch[0]&&ch[0]<=9) printf("no");
else
{
for(i=1;i<n;i++)
{
if(ch[i]>='a'&&ch[i]<='z'||ch[i]>='A'&&ch[i]<='Z'||ch[i]>=0&&ch[i]<=9||ch[i]=='_')
continue;
else
break;
}
}
if(i==n-1) printf("yes");
else printf("no");
return 0;
}
等我看看先
0和9用单引号引起来。
n你申请的是char类型,从键盘输入用的是%d,另外,判断的时候0和9需要加引号。
根据你代码的逻辑,输入的第一个字符应该是'0'-'9'之间的,否则就输出no,如果第一个字符是'0'-'9'之间,那就就判断后面的n个字符是不是满足if条件,如果满足就i++,不满足就break。修改后的代码如下:
如有帮助,请采纳一下,谢谢。
#include<stdio.h>
#include<stdlib.h>
int main()
{
char ch[20],c;
int i,n;
gets(ch);
n = ch[0] - 48;
if('0'<=ch[0]&&ch[0]<='9')
{
printf("no");
return 0;
}
else
{
for(i=1;i<n;i++)
{
if(ch[i]>='a'&&ch[i]<='z'||ch[i]>='A'&&ch[i]<='Z'||ch[i]>='0'&&ch[i]<='9'||ch[i]=='_')
continue;
else
break;
}
}
if(i==n) printf("yes");
else printf("no");
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632