|
![]() | 作者: 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号