搜索
查看: 4146|回复: 23
打印 上一主题 下一主题

请教一段代码。、、

[复制链接]
跳转到指定楼层
楼主
发表于 2012-10-7 18:40:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币

看着教程做的,发现这样写不行 一位数是no,不是一位数的反而是yes、、、这是怎么回事?正确的做法应该是怎样的?


沙发
发表于 2012-10-8 19:39:15 | 只看该作者
楼主这样试试看行不行~
这个通过了 啊哈C 编译器,可以判断输入的数是否为零、负数、正数,但必须都是整数。

#include <stdio.h>
main()
{
     printf("\n\n\n\n     判断是否为正整数。\n\n");
     printf("     请输入:");
     int a;
     scanf("%d",&a);
     {
          if(a==0)
               {
                    printf("\n     为零噢~");
                    sleep(5000);
               }
          if(a>0)
               {
                    printf("\n     大概是正整数吧?");
                    sleep(5000);
               }
          if(a<0)
               {
                    printf("\n     似乎为负数呀~");
                    sleep(5000);
               }
     }
}



     
板凳
发表于 2012-10-8 19:42:18 | 只看该作者
大于改成小于符号!
地板
发表于 2012-10-10 00:34:45 | 只看该作者
本帖最后由 Wuya 于 2012-10-10 00:46 编辑

判断条件语义有误。 因为 a/10 中的 "/" 表示对计算结果剔除小数部分取整。
以下是几个例子:
       a=8,a/10=0 (8与10相除的商是0.8)
       a=14, a/10=1 (14与10相除的商是1.4)
       a=30, a/10=3 (30与10相除的商是3)
因此,a 取 10~99 之间的数都会满足你的判断条件,而 a 取 0~9之间的数则不满足。
解决的办法是,把判断条件 if(a/10>=1) 改成 if(a>=1 && a<=9),或者改成 if(a<=9)。

5#
发表于 2012-10-10 16:29:39 | 只看该作者
我来看看
6#
发表于 2012-10-11 18:18:44 | 只看该作者
本帖最后由 tom075395 于 2012-10-11 18:28 编辑

int a;
scanf("%d",&a);
if(a%10<10) printf("no");
if(a%10>10) printf("yes");
sleep("puase");

点评

这个不行吧。。哪里会有一个数除以10余数大于10的。。。。全部都会显示no的。  发表于 2013-4-19 16:00
7#
发表于 2012-10-12 00:58:16 | 只看该作者
看看·······
8#
发表于 2012-10-13 14:06:26 | 只看该作者
看看是怎么回事。
9#
发表于 2012-10-13 14:08:04 | 只看该作者
怎么回事,卡了??
10#
发表于 2012-10-13 14:23:40 | 只看该作者
先看看,交流交流,楼主啊,直显好
11#
发表于 2012-10-15 23:28:11 | 只看该作者
回帖真麻烦
12#
发表于 2012-10-15 23:33:56 | 只看该作者
楼主这问题~~一个数除以10,然后得到的商大于一就输出yes,否则就输出no,难道两位数不是输出yes,一位数就输出no?判断一个数是1到9如下

if (a < 10 && a > 0)     //风格一定要注意,最好是一行一句,以免养成不好习惯
    printf("yes");
else
  printf("no");

13#
发表于 2012-10-19 18:12:06 | 只看该作者
先看图先0000.0
14#
发表于 2012-10-19 18:21:59 | 只看该作者
本帖最后由 1023412140 于 2012-10-19 18:23 编辑

#include <stdio.h>
int main()
{
        int a;

        scanf("%d",&a);
   
        if(a>=1 && a<=9)        //“&&”在if里面表示 并且
                printf("yes");
   
        else
                printf("no");
        sleep(5000);
        return 0;
}

简单容易看- -嘻嘻

点评

Sleep还写错了  发表于 2019-7-26 20:58
使用Sleep函数要# include <windows.h>吧  发表于 2018-4-5 21:28
15#
发表于 2012-11-8 19:44:37 | 只看该作者
你这段代码的输出结果就是大于10的输出“yes”。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表