加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

4个if语句,对四个用户输入的数字进行 输出最大和最小值!

(2011-04-11 13:40:00)
标签:

杂谈

分类: LanguageC
一直过来,跟着这本书编程,没有遇到什么障碍,昨天小小的挫折,有点小小的打击呀..
郁闷,虽然不是很难,因为我都是用别的方法解决的,
但是就是想不出来呢,别人都说有道理的方法,我就偏偏想不出来为什么,
请教了新加的qq好友,他给了我两次提示,没错,我也看了,
但是我考虑的东西的重点似乎跟他理解我的有点不同,我就是搞不懂呢,需要耐心~
刚刚在编其他练习题的时候,很郁闷的想尽快把博客文章写出来,以宣泄一下:
在日后解决,完全懂了那道题后,在补充关于此题的一些想法:

此题是:要求的是:只用四个if语句,把用户输入的a、b、c、d四个数 进行输出最大和最小值.
答案:
#include <stdio.h>
int main()
{
    int a,b,c,d,max,min;
    scanf("%d %d %d %d",&a,&b,&c,&d);
  if(a > b) {
   max = a;
   min = b;
          }
  else    {
   max = b;
   min = a;
          }
  if(max > b) min = b;
  else max = b;
  if(max > c) min = c;/888888
  else max = c;
  if(max > d) min = d;/999999
  else max = d;
  printf("The Largest One:%d\n",max);
  printf("The Smallest One:%d\n",min);
  return 0;
}

让我搞不明白的是:if(max > c) min = c;(标记了/888888的地方)
               和if(max > d) min = d;标记了/999999的地方)
如果 max = a,那假如 max > c 真知为1 ,那为什么min 就是c呢?(b和c 都没有进行比较!!)
或者max = b, 那假如 max > c 真值为1 ,那为什么min 就是c呢?(a和c 都没有进行比较!!)
再或者 max =a,假如 max > c 真值为0(即max < c); max 就是c呢(这个我明白)
       max =b,假如 max > c 真值为0(即max < c);  max 就是c呢?(这个我也明白)


很是郁闷呀,我要找答案!求高手解答:关于上述求最小值的问题!



//-----------------------------------------------------------------------------------------
以上的方法:是百度知道里面一个网友解释的,而且还下一楼竟然有人说!
楼上正解!
郁闷,经过了和同学的讨论,以上的方法错误,而且错误就是处在我考虑的地方上!
再经过同学的思考,当然还有我的:
正确的方法应该是:
#include<stdio.h>
void main()
{
    int a,b,c,d,max1,max2,min1,min2;
    scanf("%d %d %d %d",&a,&b,&c,&d);
     max1 = b; min1 = a;
     max2 = d; min2 = c;
    if(a > b){max1 = a;min1 = b;}
    if(c > d){max2 = c;min2 = d;}
    if(max1 < max2) max1 = max2;
    if(min1 > min2) min1 = min2;
    printf("%d %d",max1,min1);
}
为了缩减文章的“规模”,我用以上不是很规范的格式写了,准确来说,是复制了一下!
此方法的思路是:

                        (max1 min1)                第三步:max1和max2比较,把大的值赋给max1
                                                            min1和min2比较,把小的值赋给min1
                (max1 min1)    (max2 min2)       第二步:a和b 比较,把大的值和小的值
                                                            赋给max1 和 min1
                                                            c和d 比较,把大的值和小的值
                                                            赋给max2 和 min2
            (a)       (b)     (c)       (d)  第一步:输入四个数              

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有