A. 如何用c语言的四个if语句从四个整数找到最大值和最小值
首先,你的程序由于定义了变量a,又定义了数组a,而此时数组名a不是变量,与前面定义的变量a重复,只要把数组名a改成非a,b,c,maax,min,i,j的其他字母就行啦但是修改后的程序只能输入数据,不能输出结果。其中一个很明显的错误就是第7行i=1,数组是从下标0开始,很明显你只能存储2个数。经过一番调试,如果你非得用数组解题,可用如下程序:#include <stdio.h>
void main()
{
int i,j,a[3],t;for (i=0;i<3;i++)
{printf("请输入第%d个数的值:",i+1);scanf("%d",&a[i]);printf("\n");}for(i=0;i<2;i++)
for(j=i+1;j<=2;j++)
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}printf("最大值为%d\n",a[0]);
printf("最小值为%d\n",a[2]);
}程序结果: 对于你后来问到的为什么改后的程序没错而能运行的问题,是因为你定义了一个含有三个元素的数组,而元素下标只能从0-2,而你编的时候刚好写多了一个a3,所以程序对于a1和a2还能分配存储空间,但是对于a3这个额外生出的数据就不知道往哪里存储;还有,你下面进行比较是从a0开始,而这个变量又没分配数值,无法进行比较,所以就无法输出结果 如果你真的很想用abc三个变量和if语句,那么下面这个程序应该适合你,程序如下:#include <stdio.h>
void main()
{
int a,b,c,t;
printf("输入a、b、c的值(用空格分开):");
scanf("%d %d %d",&a,&b,&c);
if(a<b)t=b,b=a,a=t;
if(a<c)t=c,c=a,a=t;
if(b<c)t=c,c=b,b=t;
printf("最大数:%d\n",a);
printf("最小数:%d\n",c);
}程序结果: 这种题目我看用if语句就最简单啦,至于用到数组和函数调用就有点大题小做。其实函数调用只是if语句的浓缩。
B. 怎样用C语言编一个程序从a,b,c三个数中选出最大的
#include <stdio.h>
int main()
{
int a,b,c,MAX,MIN;
MAX = a>b ? a : b
MAX = MAX>c ? MAX : c
MIN = a<b ? a : b
MIN = MAX<c ? MIN : c
printf("max=%d min=%d",MAX,MIN);
}
两两比较,然后输出最大的数就可以了。
C. C语言3个数求最大值怎么写啊!!!我搞了半天都不行!
参考代码
#include <stdio.h>
int main(void) {
int a,b,c;
scanf("%d %d %d",&a,&b,&c);// 输入3个数
int max = a;//默认最大值为a
//选出a,b中的最大值
if(max<b)
max = b;
//将前两个中最大值与c比较,得出真正的最大值
if(max < c)
max = c;
printf("%d",max);//输出最大值
return 0;
}
运行截图
D. 请问 怎样用C语言求三个数的数的最大值 具体的运行的程序是怎样的
*题目:求三个整数的最大值,C语言*/
#include
<stdio.h>
int
max(int
a,int
b){return
a>b?a:b;}/*此函数返回最大值*/
int
main()
{
int
n1,n2,n3;
printf("请输入三个整数,以空格分隔:");
scanf("%d%d%d",&n1,&n2,&n3);
printf("max
int=%d\n",max(max(n1,n2),n3));
return
0;
}
结果
wh@wh-ubuntu704:~$
vim
test5.c
wh@wh-ubuntu704:~$
cc
-o
test5
test5.c
wh@wh-ubuntu704:~$
./test5
请输入三个整数,以空格分隔:3
9
5
max
int=9
E. c语言中如何从一大堆数据中筛选最大的
1.把这“一大堆”数放进一个数组。
2.把数组的第一个元素看作最大数赋给变量max。
3.从数组的第二个元素开始与max比较,若元素值比max大则把这个元素值赋给max。
4.遍历后max则为最大的。
F. c语言编程,求abc三个数的最大值
1、首先是鼠标选择单击C语言编程软件创建一个空的C语言文件。
G. 怎样用C语言编出在n个数里找最大值的程序
找最大的值
max=0;
for(int i=0;i<n;i++) if(max<a[i]) max=a[i]; printf("%d",max);
找最小的值
min=100;
for(int i=0;i<n;i++) if(min>a[i]) min=a[i]; printf("%d",min);
找某个值
scanf("%d",&value);
for(int i=0;i<n;i++) if(a[i]==value) {printf("%d",i);break;}
H. 如何用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 ",max);
return 0;
}
基本思想:依次选出数组最小的数放到数组的前面。首先从数组的第二个元素开始往后遍历,找出最小的数放到第一个位置。再从剩下数组中找出最小的数放到第二个位置。以此类推,直到数组有序
(8)如何用c语言从几个数选最值扩展阅读:
C语言经典排序算法
一、交换排序
1、冒泡排序
基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。
2、快速排序
基本思想:选取一个基准元素,通常为数组最后一个元素(或者第一个元素)。从前向后遍历数组,当遇到小于基准元素的元素时,把它和左边第一个大于基准元素的元素进行交换。在利用分治策略从已经分好的两组中分别进行以上步骤,直到排序完成。下图表示了这个过程。
二、插入排序
1、希尔(shell)排序
基本思想为在直接插入排序的思想下设置一个最小增量dk,刚开始dk设置为n/2。进行插入排序,随后再让dk=dk/2,再进行插入排序,直到dk为1时完成最后一次插入排序,此时数组完成排序。
三、选择排序
1、堆(Heap)排序
基本思想:先把数组构造成一个大顶堆(父亲节点大于其子节点),然后把堆顶(数组最大值,数组第一个元素)和数组最后一个元素交换,这样就把最大值放到了数组最后边。
把数组长度n-1,再进行构造堆,把剩余的第二大值放到堆顶,输出堆顶(放到剩余未排序数组最后面)。依次类推,直至数组排序完成。
四、归并排序
基本思想:归并算法应用到分治策略,简单说就是把一个答问题分解成易于解决的小问题后一个个解决,最后在把小问题的一步步合并成总问题的解。这里的排序应用递归来把数组分解成一个个小数组,直到小数组的数位有序,在把有序的小数组两两合并而成有序的大数组。