思路分析:先比较2个数,取其中大者与第三个数比较得出较大者为最大数,记为max.步骤如下:
第一步:输入a,b,c.
第二步:比较a,b.若a>b,则执行第三步;否则,执行第四步.
第三步:比较a,c.若a>c,则输出最大数max=a;否则,输出最大数max=c.
第四步:比较b,c.若b>c,则输出最大数max=b;否则,输出最大数max=c.
流程图:
启示:自然语言与流程图是表示算法的两种方法,显然流程图更直观、更准确.此算法中包含了顺序和条件两种结构,注意其中条件结构的嵌套(条件分支中含有条件结构)的使用.
扩展资料:
c语言版本:
#include
void main()
{ int q; printf("请输入要排序的数字的个数:");
scanf("%d",&q);
int a[q]; int i,j,t;
printf("%d个数字排序。\n\n\n\n\nPlease input %d numbers:",q,q); for(i=0;i scanf("%d",&a[i]); printf("\n"); for(j=0;j { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf("排序好的数组为:\n"); for(i=0;i printf("%d ",a[i]); printf("\n"); }
a[i+1])
先令一个中间值 t ;
然后依次比较a,b,c ;
具体过程是这样
先比较a和b的值,如果a大于b,,则利用t把a和b进行交换;然后比较a和c的值,如果a大于c,则利用t把a和c的值进行交换;最后比较b和c的值,如果b大于c,则利用t把b和c的值进行交换; 接着就可以按照从小到大的顺序依次输出啊a,b,c了
程序如下
#include
void main()
{
int a,b,c,t;
printf("请依次输入a,b,c:");
scanf("%d%d%d",&a,&b,&c);
if(a>b) {t=a;a=b;b=t;}
if(a>c) {t=a;a=c;c=t;}
if(b>c) {t=b;b=c;c=t;}
printf("按从小到大的顺序输出a=%d,b=%d,c=%d\n",a,b,c);
}
传统的流程图如下:
流程的解释:
对abc三个数进行大小的比较,总共需要比较三次;
1、首先输入a,b,c三个数。
2、比较a,b两个数,得出a与b中的最大值。
3、然后比较b与c两个数,得出b与c的最大值。
4、最后将第2步与第3步得出的最大值进行比较,得出我们需要的最大数。
扩展资料:
其他方法得出abc中的最大值:
使用max函数找到最大值后删除,再从剩下元素中找到最大值
例如:a=6 ,b=5 ,c=3
l=[1,2,3]
a=max(l)
l.remove(a)
b=max(l)
l.remove(b)
c=l[0]
print(a,b,c)