c语言求最大或最小值
❶ c语言问题关于求出最大值和最小值
第一个问题:
为什么在求最大最小值钱,要把a[0][0]赋值给max,min
答:
因为max,min在最开始没有初始化,不能直接比较,而因为是比较数组里的值,又不能随便初始化。所以我们选择默认第一个数最大(或最小)。
第二个问题:
if语句
有很多个条件符合这个条件啊,怎么只输出那个最大的
而其他也符合这个条件的?
答:
我们先默认了最大(或最小值)是第一个数组元素,我们把他依次和后面元素比较,当碰到比它大(或小)的值,我们就把它保存到max(min),并在h,l中保存元素所在数组的位置,所以每次比较完,max(min)里保存的始终是最大(或最小)值。
❷ 用C语言,任意输入10个数,求其中的最大值和最小值
任意输入10个数,求其中的最大值和最小值的源代码如下:
#include<stdio.h>
#define SIZE_MAX 30
int max(int b[],int n);
int min(int b[],int n);
int main(void)
{
int a[SIZE_MAX],b,c,i,m;
printf("任意多个数,判断最大值和最小值: ");
printf("输入一个数,表示你想比较多少个数字: ");
scanf("%d",&m);
printf("你输入了%d个数 ",m);
printf("请你输入%d个数 ",m);
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
b=max(a,m);
c=min(a,m);
printf("你输入的%d分别是: ",m);
for(i=0;i<m;i++)
{
printf("%d ",a[i]);
printf("最大数是:%d ",b);
printf("最小数是:%d ",c);
return 0;
}
(2)c语言求最大或最小值扩展阅读
1、如果一个函数确定无需传入任何参数,那么用void限定是一个不错的选择。函数没有声明返回值时,编译器默认其返回值为int。
2、main函数的返回值最终会作为程序的退出状态,而一旦声明为void,在程序退出后,想要获取其退出状态也就不可以了。因此不建议其返回值为void。
❸ C语言如何求100个数中的最大最小值
#include<stdio.h>
voidmain()
{
inti;
floatmin,max,a[100];
scanf("%f",&a[0]);
min=a[0];max=a[0];
for(i=1;i<100;i++)
{
scanf("%f",&a[i])
if(min>a[i])min=a[i];
if(max<a[i])max=a[i];
}
printf("最大值=%f 最小值=%f",max,min);
}
❹ c语言中,从一组数中找最大值和最小值
#include <stdio.h>
// 获取数组元素的最大值和最小值
int main(void){
(此处空一行)
int arr[] = {1,2,3,5,67,8,9,33};
int min,max;
compute_m(arr,sizeof(arr)/sizeof(int),&min,&max);
(此处空一行)
printf("result: min = %d , max = %d ",min,max);
return 0;
}
(此处空一行)
void compute_m(int arr[],int len, int* min ,int* max){
for(int i=0;i<len;i++){
if (*min>arr[i]){
*min = arr[i];
}
(此处空一行)
if (*max<arr[i]){
*max = arr[i];
}
}
}
(4)c语言求最大或最小值扩展阅读:
实际操作
int ary[5];
int max;
int min;
printf("请输入数组中的五个数字: ");
for (int i=0; i<5; i++)
{
scanf("%d",&ary[i]); //数组中存放五个数字必须挨个遍历存放
}
max = ary[0];
min = ary[0]; //把ary[0]都赋值给max和min
for(int j=1; j<5; j++) //求最大、最小
{
if (max<ary[j])
max = ary[j]; //有比max大的就赋值给max
if (min>ary[j])
min = ary[j]; 有比min小的就赋值给min
}
printf("数组中的最大值为 %d , 最小值为 %d ",max,min);
❺ 求c语言程序:用一个函数求N个数的最大值和最小值。。。
#include<stdio.h>
intmax(intn)
{inti,x,f;
scanf("%d",&f);
for(i=1;i<n;i++)
{scanf("%d",&x);
if(x>f)f=x;
}
returnf;
}
intmain()
{intn;
printf("有几个数:");
scanf("%d",&n);
printf("其中最大的数是:%d ",max(n));
return0;
}
#include<stdio.h>
int min;
int maxmin(int n)
{int i,x,f;
scanf("%d",&f);
min=f;
for(i=1;i<n;i++)
{scanf("%d",&x);
if(x>f)f=x;
else if(x<min)min=x;
}
return f;
}
int main()
{int n,mm;
printf("有几个数:");
scanf("%d",&n);
mm=maxmin(n);
printf("其中最大的数是:%d 最小的数是:%d ",mm,min);
return 0;
}
❻ c语言编程 输入5个数 求出最大值和最小值
#include<stdio.h>
#include<math.h>
int max(int x,int y)
{
if(x>y)
return x;
else
return y;
}
int min(int x,int y)
{
if(x<y)
return x;
else
return y;
}
int main()
{
int x,y,a,b,c,d,e,f,g,h,i,t,o,p,l;printf("输入任意五个整数: ");scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
f=max(a,b);
g=max(f,c);
h=max(g,d);
i=max(h,e);
t=min(a,b);
o=min(t,c);
p=min(o,d);
l=min(p,e);
printf("max=%d,min=%d ",i,l);
}
(6)c语言求最大或最小值扩展阅读:
return
C++的关键字,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值.
说到return,有必要提及主函数的定义,下面是从网络上找到的资料,好好消化吧,对了解主函数中返回值的理解有很大的帮助.
很多人甚至市面上的一些书籍,都使用了void main(),其实这是错误的。C/C++中从来没有定义过void main()。
C++之父Bjarne Stroustrup在他的主页上的FAQ中明确地写着The definition void main(){/*...*/}is not and never has been C++,
nor has it even been C.(void main()从来就不存在于C++或者C)。下面我分别说一下C和C++标准中对main函数的定义。
1.C
在C89中,main()是可以接受的。Brian W.Kernighan和Dennis M.Ritchie的经典巨着The C programming Language 2e(《C程序设计语言第二版》)用的就是main()。不过在最新的C99标准中,只有以下两种定义方式是正确的:
int main(void)
int main(int argc,char*argv[])
(参考资料:ISO/IEC 9899:1999(E)Programming languages—C 5.1.2.2.1 Program startup)
当然,我们也可以做一点小小的改动。例如:char*argv[]可以写成char**argv;argv和argc可以改成别的变量名(如intval和charval),不过一定要符合变量的命名规则。
如果不需要从命令行中获取参数,请用int main(void);否则请用int main(int argc,char*argv[])。
main函数的返回值类型必须是int,这样返回值才能传递给程序的激活者(如操作系统)。
如果main函数的最后没有写return语句的话,C99规定编译器要自动在生成的目标文件中(如exe文件)加入return 0;,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return语句,虽然没有这个必要,但这是一个好的习惯。
注意,vc6不会在目标文件中加入return 0;,大概是因为vc6是98年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上return语句了吧!不过,gcc3.2(Linux下的C编译器)会在生成的目标文件中加入return 0;。
❼ 用c语言找最大值和最小值
用指针求含有十个元素的数组最大值和最小值
主函数参考
int main()
{
int a[10],i,maxnum,minnum;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
FindMaxandMin(a,10,&maxnum,&minnum);
printf("%d %d",maxnum,minnum);
}
输入格式:
数组
输出格式:
最大值 最小值
输入样例:
1 2 3 5 4 6 7 8 9 10
输出样例:
10 1
(7)c语言求最大或最小值扩展阅读
#include
int main()
{
int a[3];
int i,j,temp;
printf("请输入3个数:");
for(i=0;i scanf("%d",&a[i]);
for(i=0;i for(j=0;j if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("最大值%d最小值%d",a[2],a[0]);
return 0;
}
❽ C语言求最大最小值
#include "stdio.h"
void main()
{
int a[5],i,max,min;
printf("请输入五个数:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
max=min=a[0];
for(i=1;i<5;i++)
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
printf("max=%d\n",max);
printf("min=%d\n",min);
printf("和是%d\n",max+min);
printf("差是%d\n",max-min);
}
❾ C语言求最大最小值
1)问题出在minmax函数,这个函数找到的最大值和最小值没有返回。
2)虽然你定义了最大值和最小值为全局变量,但是在minmax函数的调用参数中你又定义了同名变量,这样在minmax函数内部实际使用的是局部变量。
3)最简单的方法,直接把minmax函数的后两个输入参数去掉。
❿ 编写一个c语言程序,输入5个数,求它们中最大值和最小值并输出
#include <stdio.h>
void main( )
{
int i = 0 , num[5], max = 0 , min = 0 ; /* max:用于存放最大值;min:用于存放最小值 */
for( i = 0 ; i < 5 ; i ++ )
scanf("%d", &num[i]) ; /* 循环地将输入的五个数存入 num[5] 数组中 */
for( i = 0 ; i < 5 ; i ++ ) /* 循环地判断数组中的数要是比 max 还大,则将相应的数存入 max 变量中 */
if( num[i] >= max )
max = num[i] ;
for( i = 0; i < 5 ; i ++ ) /* 循环地判断数组中的数要是比 min 还小,则将相应的数存入 min 变量中 */
if( num[i] <= min )
min = num[i] ;
printf("MAX num is :%d MIN num is :%d ", max, min) ;
}
c语言编程技巧
1、while(--n>=0)与while(n-->0)
在大多数C语言实现中,--n >=0 至少与等效的n-- >0 一样快,大多数情况下前者更快。
主要因为第一个表达式首先从n中减去1然后将结果与0比较;而第二个表达式首先保存n,从n中减去1之后比较保存值与0的大小,这中间多了一个保存的时间,从而前一个表达式更快。
注意:这样的循环中,尽量不使用unsigned类型,否则前者会出现无限循环情况。
2、多重循环处理
对于多重循环,如果可能,应将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。