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,再進行構造堆,把剩餘的第二大值放到堆頂,輸出堆頂(放到剩餘未排序數組最後面)。依次類推,直至數組排序完成。
四、歸並排序
基本思想:歸並演算法應用到分治策略,簡單說就是把一個答問題分解成易於解決的小問題後一個個解決,最後在把小問題的一步步合並成總問題的解。這里的排序應用遞歸來把數組分解成一個個小數組,直到小數組的數位有序,在把有序的小數組兩兩合並而成有序的大數組。