如何用c语言编写一个程序 就是有三个数 求最大的一个

三个数 比较大小 求输出的 是最大的一个
任意输出三个数

程序如下:

#include<stdio.h>

int main()

{

int a,b,c,max;

scanf("%d,%d,%d",&a,&b,&c);

max=a;

if(b>a) max=b;

if(b>c) max=b;

else if (c>a) max=c;

printf("max=%d\n",max);

return 0;

}

基本思想:依次选出数组最小的数放到数组的前面。首先从数组的第二个元素开始往后遍历,找出最小的数放到第一个位置。再从剩下数组中找出最小的数放到第二个位置。以此类推,直到数组有序

扩展资料:

C语言经典排序算法

一、交换排序

1、冒泡排序

基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。

2、快速排序

基本思想:选取一个基准元素,通常为数组最后一个元素(或者第一个元素)。从前向后遍历数组,当遇到小于基准元素的元素时,把它和左边第一个大于基准元素的元素进行交换。在利用分治策略从已经分好的两组中分别进行以上步骤,直到排序完成。下图表示了这个过程。

二、插入排序

1、希尔(shell)排序

基本思想为在直接插入排序的思想下设置一个最小增量dk,刚开始dk设置为n/2。进行插入排序,随后再让dk=dk/2,再进行插入排序,直到dk为1时完成最后一次插入排序,此时数组完成排序。

三、选择排序

1、堆(Heap)排序

基本思想:先把数组构造成一个大顶堆(父亲节点大于其子节点),然后把堆顶(数组最大值,数组第一个元素)和数组最后一个元素交换,这样就把最大值放到了数组最后边。

把数组长度n-1,再进行构造堆,把剩余的第二大值放到堆顶,输出堆顶(放到剩余未排序数组最后面)。依次类推,直至数组排序完成。

四、归并排序

基本思想:归并算法应用到分治策略,简单说就是把一个答问题分解成易于解决的小问题后一个个解决,最后在把小问题的一步步合并成总问题的解。这里的排序应用递归来把数组分解成一个个小数组,直到小数组的数位有序,在把有序的小数组两两合并而成有序的大数组。

参考资料来源:百度百科-C语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-07
#include<stdio.h>#define MAX(a,b) (a)>(b)?(a):(b)int main(){int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=MAX(MAX(a,b),c); printf("最大值=%d\n",max); return 0; 

}

#include <stdio.h>
main()
{ int x,y,z;
int max;
printf("Input three numbers:");
scanf("%d%d%d",&x,&y,&z);
max=x;
if(y>max)
max=y;
if(z>max)
max=z;
printf("The max number is %d\n",max);
}

扩展资料:

C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。

在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。

当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。

在学习中,对此合理进行分类,找出它们与数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。

参考资料:C语言-百度百科

本回答被网友采纳
第2个回答  2018-12-19

c语言编写一个程序求三个数中最大的一个代码如下:

#include<stdio.h>

int main()

{

int max(int x,int y,int z);

int a,b,c,d; 

scanf("%d,%d,%d",&a,&b,&c);

d=max(a,b,c);

printf("max=%d\n",d);

return 0;

int max(int x,int y,int z)

{

int e,f;

if(x>y)e=x;

else e=y;

if(e>z)f=e;

else f=z;

return(f);

}

扩展资料:

其他代码如下:

#include<stdio.h>

int max(int x,int y,int z);

int main()

{    int a,b,c,d;    

scanf("%d,%d,%d",&a,&b,&c);     

d = max(a,b,c);    

printf("max=%d\n",d);    

return 0;

}

int max(int x,int y,int z)

{

int e,f;

if(x>y)        

e=x;

else        

e=y;    

if(e>z)        

f=e;    

else        

f=z;    

return(f);

}

本回答被网友采纳
第3个回答  2007-09-09
呵呵,很简单的问题呀,我这里有四种方法,你参考一下
#include<stdio.h>
void main()
{
int a,b,c,max; //这里只能为整形,不能为double型
printf("please input three number a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);

// method one:
max=a;
if(b>=max) max=b;
if(c>=max) max=c;
printf("the max is:%d\n",max);

// method two:
if(a>=b&&a>=c)
printf("the max is %d\n",a);
else if(b>=a&&b>=c)
printf("the max is %d\n",b);
else
printf("the max is %d\n",c);

// method three:
printf("the max is: %d\n",a>=b&&a>=c?a:(b>=a&&b>=c?b:c));

// method four:
int a[3],max=-32768;
for(int i=0;i<3;i++)
{
scanf("%d",&a[i]);
if(a[i]>max) max=a[i];
}
printf("the max is:%d\n",max);
}本回答被提问者和网友采纳
第4个回答  2016-01-26
#include <stdio.h>
int main()
{
int a,b,c,MAX,;
MAX = a>b ? a : b
MAX = MAX>c ? MAX : c
printf("max=%d min=%d",MAX,MIN);
}
原理就是两两比较得出最大的那个数
相似回答