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跨切循環層的次數。