鱼C论坛

 找回密码
 立即注册
查看: 1788|回复: 13

if问题

[复制链接]
发表于 2014-7-14 20:00:51 | 显示全部楼层 |阅读模式
1鱼币
为什么下面的程序我输入小数它不执行第一个if里面的语句?
#include<stdio.h>
void main()
{
        int a,x;
        printf("in a numble\n");
        scanf("%d",&a);
        if(a%1!=0)
        {
                printf("Please input errors from the new input\n");
        }
        else
        {
                if(0<a,a<4)
                {
                        printf("this is a sushu\n");
                }
                else
                {
                        for(x=2;x<a;x++)
                        {
                                if(a%x==0)
                                {
                                        printf("this is not  a sushu\n");
                                }
                                else
                                {
                                        printf("this is a sushu\n");
                                }
                                break;
                               
                        }
                }
               
        }
}

最佳答案

查看完整内容

{:7_176:} %d是整形 你输入小数也只会取整数部分 再说%也是针对整形的 不管什么数 ÷ 1 余数肯定是0啊 所以 这肯定不会执行啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-7-14 20:00:52 | 显示全部楼层
{:7_176:}
  1. scanf("%d",&a);
复制代码

%d是整形 你输入小数也只会取整数部分
再说%也是针对整形的 不管什么数 ÷ 1 余数肯定是0啊
所以
  1. if(a%1!=0)
  2.         {
  3.                 printf("Please input errors from the new input\n");
  4.         }
复制代码

这肯定不会执行啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-7-14 20:31:30 | 显示全部楼层
碉堡了,很少看见人家程序写你这样的。if else if 没学过吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-7-14 20:54:21 | 显示全部楼层
因为A是整形,你说小数的时候,他默认会只取整数部分,int a  ;a=1.1;printf("%d",a);结果为1,可以改变A变量的类型,来解决这个问题
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-7-14 20:56:28 | 显示全部楼层
奋斗小小鸟 发表于 2014-7-14 20:54
因为A是整形,你说小数的时候,他默认会只取整数部分,int a  ;a=1.1;printf("%d",a);结果为1,可以改变A变 ...

改变类型,结构也得改改
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-7-15 10:30:28 | 显示全部楼层
  1. #include <stdio.h>

  2. int main ()
  3. {
  4.         int n;
  5.         printf("Please Input a number:");
  6.         scanf("%d",&n);
  7.         printf("%d\n",n);

  8.         return 0;
  9. }
复制代码

你自己输入小数试试看就知道了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-7-15 10:44:18 | 显示全部楼层
这是我自己写的一个
  1. #include <stdio.h>
  2. #include<math.h>

  3. void close();

  4. int main ()
  5. {
  6.         int n,i;
  7. s:        printf("Please Input a number:");
  8.         if(scanf("%d",&n))
  9.         {
  10.                
  11.                  if(n == 1)
  12.                 {
  13.                         printf("1既不是素数也不是和数!\n");
  14.                         close;
  15.                         goto s;
  16.                 }
  17.                 else if(n == 2)
  18.                 {
  19.                         printf("%d是素数!\n",n);
  20.                         close;
  21.                         goto s;
  22.                 }
  23.                 else if(n%2==0)
  24.                 {
  25.                         printf("%d是和数!\n",n);
  26.                         close;
  27.                         goto s;
  28.                 }
  29.                 else
  30.                 {
  31.                         for(i=3;i<=sqrt
  32.                                 (n);i=i+2)
  33.                         {
  34.                                 if(n%i==0)
  35.                                 {
  36.                                         break;
  37.                                 }
  38.                         }
  39.                         if(i<=sqrt(n))
  40.                         {
  41.                                 printf("%d是和数!\n",n);
  42.                                 close;
  43.                                 goto s;
  44.                         }
  45.                         else
  46.                         {
  47.                                 printf("%d是素数!\n",n);
  48.                                 close;
  49.                                 goto s;
  50.                         }
  51.                 }
  52.         }
  53.        
  54.         return 0;
  55. }
  56. void close()
  57. {
  58.         char ch;
  59.         while((ch = getchar())!='\n');
  60. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-7-15 11:47:20 | 显示全部楼层
!=出在这个判断语句
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-7-15 12:46:21 | 显示全部楼层
牡丹花下死做鬼 发表于 2014-7-15 10:30
你自己输入小数试试看就知道了

如果我想让用户输入带有小数的数字后就显示输入错误该怎么办呢?

点评

最后价格else呗  详情 回复 发表于 2014-7-15 12:54
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-7-15 12:54:40 | 显示全部楼层
千寻0 发表于 2014-7-15 12:46
如果我想让用户输入带有小数的数字后就显示输入错误该怎么办呢?

最后价格else呗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-7-15 13:24:33 | 显示全部楼层
reg163 发表于 2014-7-14 20:31
碉堡了,很少看见人家程序写你这样的。if else if 没学过吗

我写的有什么问题吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-7-15 13:27:16 | 显示全部楼层

初学不知道该怎么写判断
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-7-15 13:37:34 | 显示全部楼层
路过 顶一下
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

我爱鱼C论坛 该用户已被删除
发表于 2015-2-19 20:42:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-19 05:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表