这样不就对了嘛!
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int i,len,flag;
char a[100];
do
{
flag=0;
printf("请输入一个正整数(不超过10位):");
gets(a);
len=strlen(a);
if(strcmp("0",a)==0)//0单独处理
{
break;
}
else
{
for(i=0;i<len;i++)
{
if(a[i]!='0')
break;
}
}
if(i==len)//判断是否为一长串0
{
printf("如果要输入零,请直接输入0!\n");
flag=1;
continue;
}
for(i=0;i<len;i++)//判断是否为数字
{
if(a[i]<'0'||a[i]>'9')
{
printf("您输入的不是数字!请重新输入!\n");
flag=1;
break;
}
}
if(a[0]=='0'&&flag==0)//判断首位是否为0
{
printf("首位必须不为0!\n");
flag=1;
continue;
}
if(len>10&&flag==0)//判断是否超过10位
{
printf("您输入的数字超过了10位!请重新输入!\n");
flag=1;
}
}while(flag==1);
for(i=0;i<len;i++)//加空格打印
printf("%c ",a[i]);
printf("\n");
system("pause");
return 0;
}
测试:
图片附件: 游客没有浏览图片的权限,请
登录 或
注册