|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 122Ml 于 2020-8-3 10:18 编辑
- #include <stdio.h>
- int main()
- {
- int count,i;
- char name[50];
-
- printf("请输入数值!:\n");
- scanf("%d",name);
-
- for(i=0;i<50;i++)
- {
- if(name[i]==1,2,3,4,5,6,7,8,9)
- {
- count++;
- printf("测试\n");
- }
- }
-
- if(count==0)
- {
- printf("并未找到任何数值!\n");
- }
- return 0;
- }
复制代码
目的:检测输入字符串中是否含有数字,如果不含,则打印“并未找到任何数值”
测试时,一直打印“测试”,name[i]一直等于1到9?
求大神帮助
本帖最后由 sunrise085 于 2020-8-3 10:42 编辑
还有一个问题,我输入一个数字,检测结果出现三个“测试”;输入任意字符,出现两个“测试”,这是什么原因
这个问题是因为你的for循环导致的,当你输入不足50个的时候,后面的内容是不确定的。有可能就会出现符合条件的数字,所以不能用for循环,应该用while循环
- #include <stdio.h>
- int main()
- {
- int count,i;
- char name[50];
-
- printf("请输入数值!:\n");
- scanf("%s",name);//这里应该用%s输入,因为你定义的是一个字符串数组
- i=-1;
- count=0;
- while(name[++i]!='\0')//这里不应该用你定义的长度来进行循环,应该按照你输入的长度进行循环
- {
- if(name[i]>='1' && name[i]<='9')//这里应该判断第i个字符是否在'1' '9' 之间
- {
- count++;
- printf("测试\n");
- }
- }
- printf("i=%d,count=%d\n",i,count);//这里帮你添加了一个输出,可以看看结果
-
- if(count==0)
- {
- printf("并未找到任何数值!\n");
- }
- return 0;
- }
复制代码
|
|