论坛: 编程破解 标题: C的编写,朋友帮看下! 复制本贴地址    
作者: lisen [lisen]    论坛用户   登录
程序目的,比较6个数的最小的数.
现在我用两个方法写出了计算程序朋友们帮看一下,不用自定义函数的为什么计算不正确呢?

这是使用自定义函数实的代码:

int max(int a,int b,int c)
{int d;
if (a>b) d=b;
else d=a;
if (d>c) d=c;
return d;
}

int mac(int a1,int b1,int c1)
{int d1;
if (a1>b1) d1=b1;
else d1=a1;
if (d1>c1) d1=c1;
return d1;
}

main ()
{int l1,l2,l3,l4,l5,l6,l7,l8,cool;
printf("please input 6 nmders :");
scanf("%d%d%d%d%d%d",&l1,&l2,&l3,&l4,&l5,&l6);
l7=max(l1,l2,l3);
l8=mac(l4,l5,l6);
if (l7>l8) cool=l8;
else cool=l7;
printf("%d,%d,%d,%d,%d,%d,the mian is %d \n",l1,l2,l3,l4,l5,l6,cool);
}


这是不用自定义函数实现求六数最小值的代码:

main ()
{int a1,a2,a3,a4,a5,a6,cool,good;
printf("please input 6 nmders :");
scanf("%d,%d,%d,%d,%d,%d",&a1,&a2,&a3,&a4,&a5,&a6);
if (a1>a2) cool=a2=good;
else cool=a1=good;
if (a3<cool) a3=cool=good;
else
cool=good;
if (a4<cool) a4=cool=good;
else
cool=good;
if (a5<cool) a5=cool=good;
else
cool=good;
if (a6<cool) a6=cool=good;
else
cool=good;
printf("%d,%d,%d,%d,%d,%d, the max is %d \n",a1,a2,a3,a4,a5,a6,good);
}

我很菜,但我很好学,希望大虾们帮小弟一把!


[此贴被 不不才(lisen) 在 10月23日21时51分 编辑过]

地主 发表时间: 10/23 13:10

回复: cyshaoping [cyshaoping]   论坛用户   登录
good是什么?

B1层 发表时间: 10/23 14:29

回复: 286 [unique]   版主   登录
int max(int a,int b,int c)
{int d;
if (a>b) d=b;
else d=a;
if (d>c) d=c;
return d;
}
返回的是最小的值呀.mac也一样返回最小值.
--------------------------------
scanf("%d%d%d%d%d%d",&l1,&l2,&l3,&l4,&l5,&l6);
改为:
scanf("%d %d %d %d %d %d",&l1,&l2,&l3,&l4,&l5,&l6);
或:
scanf("%d,%d,%d,%d,%d,%d",&l1,&l2,&l3,&l4,&l5,&l6);
否则输入23,是一个2一个3?还是一个23?
----------------------------------------------
if (l7>l8) cool=l8;
else cool=l7;
cool也是最小值.
----------------------------------------------

B2层 发表时间: 10/23 15:01

回复: 286 [unique]   版主   登录
main ()
{int a1,a2,a3,a4,a5,a6,cool,good;
/*good 未赋初值!!*/
printf("please input 6 nmders :");
scanf("%d,%d,%d,%d,%d,%d",&a1,&a2,&a3,&a4,&a5,&a6);
if (a1>a2) cool=a2=good;
else cool=a1=good;
if (a3<cool) a3=cool=good;
else
cool=good;
if (a4<cool) a4=cool=good;
else
cool=good;
if (a5<cool) a5=cool=good;
else
cool=good;
if (a6<cool) a6=cool=good;
else
cool=good;
printf("%d,%d,%d,%d,%d,%d, the max is %d \n",a1,a2,a3,a4,a5,a6,good);
}


B3层 发表时间: 10/23 15:03

回复: 286 [unique]   版主   登录
main ()
{
int l1,l2,l3,l4,l5,l6,l7,l8,cool;
printf("please input 6 nmders :");
scanf("%d%d%d%d%d%d",&l1,&l2,&l3,&l4,&l5,&l6);
l7=max(l1,l2,l3);
l8=mac(l4,l5,l6);
if (l7>l8) cool=l8;
else cool=l7;
printf("%d,%d,%d,%d,%d,%d,the mian is %d \n",l1,l2,l3,l4,l5,l6,cool);
}

B4层 发表时间: 10/23 15:03

回复: 286 [unique]   版主   登录
main ()
{
  int max,num[6],i;
  printf("please input 6 numbers:");
  for (i=0;i<6;i++)
      scanf("%d",&num[i]);
  max=num[0];
  for (i=1;i<6;i++)
      if (num[i]>max)
          max=num[i];
  printf("The max one is:%d\n",max);
}

B5层 发表时间: 10/23 15:09

回复: lisen [lisen]   论坛用户   登录
哦,我写错了!
应该是求最小值!
测试过!第一段代码已经测试成功,就是第二段看不错什么问题!

B6层 发表时间: 10/23 21:02

回复: lisen [lisen]   论坛用户   登录
第二段代码的
if (a1>a2) cool=a2=good;
else cool=a1=good;
这样算是给cool和good赋值吗?
GOOD的作用我想用来异或的作用,不知这样写正确吗?

B7层 发表时间: 10/23 21:06

回复: jiangweng [jiangweng]   论坛用户   登录
真是佩服 286同志~
  这才是中华人民共和国的好同志~
  无私奉献
向你学习。能加我QQ吗~ 讨论用
QQ250345595
  加我时请声明~~

B8层 发表时间: 10/24 00:34

回复: 286 [unique]   版主   登录
=======================
第二段代码的
if (a1>a2) cool=a2=good;
else cool=a1=good;
这样算是给cool和good赋值吗?
GOOD的作用我想用来异或的作用,不知这样写正确吗?
=======================
应改为:
第二段代码的
if (a1>a2) good=cool=a2;
else good=cool=a1;

这与异或有关系吗?



B9层 发表时间: 10/24 09:40

回复: lisen [lisen]   论坛用户   登录
啊,谢谢!终于执行正确了!
但我不明白为什么
cool=a2=good和good=cool=a2
有这么大的差别呢?

B10层 发表时间: 10/24 10:41

回复: ceo_8008 [ceo_8008]   论坛用户   登录
本来你good未初始化,而赋值又是从右到左的

当然有区别了,而且是天地之别・・・

这种问题应该是书中的一些细节你还没熟练,老潭的书再看一遍吧



B11层 发表时间: 10/24 13:45

回复: ceo_8008 [ceo_8008]   论坛用户   登录
奇怪,你第一段的赋值就没错,怎么第二段代码就错了

这点应该是低级的错误呀

建议看一下书后面的结合方向

a=b;是把b的值赋给a,就是说赋值是从右到左的

同样,a=b=c;就是把c的值同时赋给a和b

好了吗?


[此贴被 寒枫(ceo_8008) 在 10月24日13时03分 编辑过]

B12层 发表时间: 10/24 13:53

回复: lisen [lisen]   论坛用户   登录
哦!这下明白了!谢谢朋友们的指点,我是刚开始学的在做功课而已,
以后还要麻烦大家咯哦!

B13层 发表时间: 10/24 17:10

回复: ceo_8008 [ceo_8008]   论坛用户   登录
呵呵,知道的,一看就知道那是习题

我也是刚学・・・

一起成长吧~~~~

B14层 发表时间: 10/24 19:45

回复: lisen [lisen]   论坛用户   登录
好希望我们都能成功,
可以加我Q吗?以后一起研究!
QQ:89255255

B15层 发表时间: 10/25 00:31

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号