VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 983|回复: 3

[讨论] C语言对if语句的疑问

[复制链接]
88_avatar_middle
最佳答案
0 
在线会员 发表于 2016-10-25 11:32:20 | 显示全部楼层 |阅读模式
我在学习C语言,用的是谭浩强教授的C程序设计第三版。
    对书中的例8.10产生了疑问:
    首先,用例题中的方法:(程序如下,我自行简化了数组的初始化,直接给出了数组)
    #include <stdio.h>
    void main()
    {       
            int large(int x,int y);
            int i,n=0,m=0,k=0;
            int a[]={0,1,2,3,4,5,6,7,8,9};
            int b[]={2,2,2,2,2,2,2,2,2,2};
            for (i=0;i<10;i++)
            {
                    if (large(a,b)==1)
                    {
                            n=n+1;
                    }
                    else if (large(a,b)==0)
                    {
                            m=m+1;
                    }
                    else
                    {
                            k=k+1;
                    }
               
            }
        printf("%d,%d,%d\n",n,m,k);
        }
    int large(int x,int y)
    {
            int flag;
            if (x>y)
                    flag=1;
            else if (x<y)
                    flag=-1;
            else
                    flag=0;
            return (flag);
    }
    结果是对的,如下:
C语言对if语句的疑问

但是我自己写的程序:
#include <stdio.h>
void main()
{
        int a[]={0,1,2,3,4,5,6,7,8,9};
        int b[]={2,2,2,2,2,2,2,2,2,2};
        int i,n=0,k=0,m=0;
        for (i=0;i<10;i++)
        {
                if (a>b)
                {
                        n=n+1;
                }
                else if (a=b)
                {
                        m=m+1;
                }
                else
                {
                        k=k+1;
                }
               

        }
        printf("%d,%d,%d\n",n,m,k);
}
运行结果不对,结果如下:
C语言对if语句的疑问

我不明白2个程序的运行结果为什么不一样。书上讲的方法对if语句中每一种情况进行了赋值,而我并没有对每一种情况赋值。这是否是我的错误所在呢?那我以后用到if语句时也需要对每一种情况进行赋值吗?





上一篇:C语言简单算法——最大公约数最小公倍数
下一篇:C语言例题之统计各种字符数量
35_avatar_middle
最佳答案
0 
在线会员 发表于 2016-10-27 08:26:11 | 显示全部楼层
楼主,你们现在的C进化到了智能的地步?数组和整数能混着用?
03_avatar_middle
最佳答案
0 
在线会员 发表于 2020-2-19 14:37:56 来自手机 | 显示全部楼层
你这边错误很多啊,首先,你 if语句中的逻辑运算符==写成了=,变成给a赋值再返回值了,其次,你将数组首地址当成了普通变量在使用,变成首元素地址在操作
80_avatar_middle
最佳答案
0 
在线会员 发表于 2020-3-12 17:29:48 | 显示全部楼层
要先学好语法
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-11-26 08:24

Powered by CcTry.CoM

© 2009-2020 cctry.com

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