#include "stdio.h" main() { int a,b,c,d; scanf("%d,%d,%d",&a,&b,&c); /*输入三个整数*/ d=max(a,b,c); /*用函数max来赋予d的最大值*/ printf("max is %d",d); getch(); } int max(int i,int x,int y) { int z; if (i<x); /*如果i小于x的话*/ else if (x<y) z=y; /*x又小于y的话那么就把最大y的值赋予z*/ else z=x; /*否则x最大*/ if(x<i) z=i; /*如果x小于i的话那么i最大*/ return z; /*反回z的值,最大值*/
}
第一个问题就是为什么我的程序错了?
第二个问题我这样的注解是对的吗?
----------------解决方案--------------------------------------------------------
#include <stdio.h> #include <stdlib.h>
int myMax(int a,int b,int c) { int m = a>b?a:b; m = m>c?m:c; return m; }
int main() { int a,b,c,d; scanf("%d %d %d",&a,&b,&c);
d=myMax(a,b,c);
printf("max is %d",d); system("pause");
return 0; }
----------------解决方案--------------------------------------------------------
darrenyang ,
你的程序中两处错误,第一,那个scanf 函数出错,不可以中间加逗号。
第二,子程序逻辑错误,所以我帮你完全改掉了。
----------------解决方案--------------------------------------------------------
多谢了
----------------解决方案--------------------------------------------------------
darrenyang ,
第一,那个scanf 函数出错,不可以中间加逗号。
你试过了吗?你肯定吗?
其实scanf 中间可以加逗号,只要输入的时候也用逗号隔开就行了
我是上机试过,我的实验程序是:
#include <stdio.h> void main() { int i,j,k; scanf("%d,%d,%d",&i,&j,&k); printf("\n %d,%d,%d \n",i,j,k); }
我的输入是 : 1,2,3
输出是 : 1,2,3
对于楼主,你的程序有逻辑上的错误。初学者,最好先画出流程图再写程序。
----------------解决方案--------------------------------------------------------
kuangjingbo
多谢你了,我还真的不会画流程图。你把我上面的程序画一个流程图出了。也让我这个菜鸟学习学习
----------------解决方案--------------------------------------------------------
kuangjingbo,
你说的对,我又试了一下。我总觉得,这样连续输入数值,是一种不好的做法。我不会写出这样的代码。因为用户并不清楚你要让他干什么。你想想用户为什么偏偏要输入 3 个数值,又为什么当中要加逗号呢。
----------------解决方案--------------------------------------------------------
努力哈
----------------解决方案--------------------------------------------------------