大家好我是內(nèi)向的代碼。
使用軟件devc++
以下都是小編我個(gè)人總結(jié)的一些常見以及不常見的 找最大值以及最小值希望各位讀者不要吝嗇自己的贊點(diǎn)擊關(guān)注是小編堅(jiān)持更新的動(dòng)力!在此謝謝大家了。
簡(jiǎn)單版:
三個(gè)數(shù)找最大值簡(jiǎn)單版
#include<stdio.h>
int max(int a,int b)
{
return a>b?a:b;//約等于if(a>b) a=b;a就是b的值
}
int main(){
int a,b,c;
while(scanf("%d%d%d",&a,&b,&c)==3)//死循環(huán)三次;
{
printf("%d",max(max(a,b),c));//先跟a以及b比較再跟c比較最后得出最大值
//max對(duì)應(yīng)上面函數(shù)的max兒括號(hào)里面的max也是對(duì)應(yīng)上面的max才能進(jìn)行比較最后與c比較。
}
return 0;
}
不好意思啊大家我一直沒更新居然沒有發(fā)現(xiàn)我之前有錯(cuò)誤現(xiàn)已經(jīng)更正還望各位同袍海涵。????
三個(gè)數(shù)找最大值
先假定i是最大數(shù)。
(笨方法以此類推假定兩個(gè)是最大值最后比較)
#include<stdio.h>//從三個(gè)人里面選出最大的那個(gè)
int main(){
int i,j,t,max=0;
scanf("%d%d%d",&i,&j,&t);
max=i;
if(max<j){
max=j;
}
if(max<t)
{
max=t;
}
printf("max=%d",max);
}
三個(gè)數(shù)字找最大值以及最小值。
#include<stdio.h>//從三個(gè)人里面選出最大的那個(gè)
int main(){
int i,j,t,max,min;
scanf("%d%d%d",&i,&j,&t);
if(i>j){
max=i;
}
else{
max=j;
}
if(max<t)
{
max=t;
}
if(i<j)
{
min=i;
}
else{
min=j;
}
if(min>t)
{
min=t;
}
printf("max=%d min=%d",max,min);
}
大家是否覺得這樣子太過于繁瑣畢竟如果只是幾個(gè)人還好如果是幾百個(gè)人呢那么這里就需要我們的數(shù)組了也就不必要一個(gè)一個(gè)去定義這樣也極大的節(jié)省了時(shí)間。
我相信讀者們肯定可以看懂所以我們來拓展一下思路。
進(jìn)階版:
從三個(gè)數(shù)字找最大值與數(shù)組的搭配。
#include <stdio.h>
int main()
{
int cd;
int arr[20];
int i, j;
int max = arr[20];
printf("請(qǐng)輸入數(shù)組長(zhǎng)度:\n");
scanf("%d" , &cd);
printf("請(qǐng)輸入數(shù)字記得空格:");
for (i = 0; i <cd;i++)//循環(huán)i<你所輸入的數(shù)字。
{
printf("請(qǐng)輸入%d個(gè)數(shù)字":,i+1);//或者++a都可以實(shí)現(xiàn)輸入的加一。
scanf("%d",&arr[i] );//開始輸入幾個(gè)數(shù)字
}
for ( j = 0;j < cd;j++) //開始循環(huán)把上面的值帶入然后進(jìn)行比較。
{
if (max < arr[j]) //循環(huán)套條件。
{
max = arr[j];
}
}
printf("最大值max=%d\n", max);
return 0;
}
這樣子就可以實(shí)現(xiàn)在多個(gè)的人中找到最大值了,當(dāng)然如果你想要找一個(gè)最小值你只需要把小于變成大于就行了。
數(shù)組找最大值以及最小值。
#include<stdio.h>//寫一個(gè)只要最大值的數(shù)組。
int main(){
int min=10000000,max=0,j;//min寫這么大是因?yàn)椴粚懙脑挆l件不知道成不成立。
int n;
printf("您想輸入幾個(gè)數(shù)字:");
scanf("%d",&n);//給數(shù)組賦值你要從幾個(gè)數(shù)字找最大值。
int a[n];//進(jìn)去了
for(j=0;j<n;j++)//開始循環(huán)輸入的值
{
printf("請(qǐng)輸入第%d個(gè)數(shù)字",j+1);//給%d依次加一直到小于n的值才停下來。
scanf("%d",&a[j]);//輸入值。
if(max<a[j])//條件成立最大值就是max
max=a[j];
if(min>a[j])//條件也成立因?yàn)橘x值是0肯定也成立。
min=a[j];
}//括號(hào)退出生命結(jié)束
//保存了輸出的值再往下輸出
//不能放進(jìn)循環(huán)否則只能輸出一次。且得不到正確答案。
printf("min=%dmax= %d",min,max);
return 0;
}
等等你不會(huì)以為數(shù)組就這樣子結(jié)束了吧!
數(shù)組小知識(shí)。
數(shù)組一般是從0開始的也即是起始地址并且我們?cè)僬{(diào)用數(shù)組的時(shí)候也就是相當(dāng)于調(diào)用指針也就是解引用操作舉一個(gè)例子你就知道了。
*p == *p 而**p ==p。
接下來再進(jìn)階
從三個(gè)數(shù)字找最大值指針版本(數(shù)組)。
#include<stdio.h>
#define n 3
int main(){
int i,max,min=100;
int a[n];
printf("請(qǐng)輸入三個(gè)數(shù)字");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
int *p=&a[i];//將數(shù)組的地址值放在指針p里面
//利用指針進(jìn)行條件判斷。
if(max<*p)
max=*p;
if(min>*p)
min=*p;
}
printf("max=%dmin=%d",max,min);
return 0;
}
指針三個(gè)數(shù)找最大值笨辦法
#include<stdio.h>//最笨的方法。
int main(){
int i,j,z,max,*pi,*pj,*pz,*pmax;
pi=&i;
pj=&j;
pz=&z;
pmax=&max;
printf("請(qǐng)輸入三個(gè)整數(shù):");
scanf("%d%d%d",&i,&j,&z);
if(*pi>*pj){
*pmax=*pi;
}
else {
*pmax=*pj;
}
if(*pmax<*pz)
{
*pmax=*pz;
}
printf("max=%d",*pmax);
}
三目運(yùn)算符號(hào)(簡(jiǎn)單版):
思路是:直接以a為最大值最后輸出a就好了原理與下方代碼一樣。
#include<stdio.h>
int main(){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
a=(a>b)?a:b;
a=(a>c)?a:c;
printf("%d",a);
return 0;
}
直接以max為最大值(有三個(gè)數(shù)一個(gè)是最大值那么其他兩個(gè)比較就行了)。
#include<stdio.h>
int main(){
int i=3,j=2,z=4,max=0;
max=(i>j) ? i:j;
max=(max>z)?max:z;
printf("%d",max);
return 0;
}
因?yàn)槲覀冎勒易畲笾悼隙ú⒉皇侵徽覂扇齻€(gè)那么我們的三目運(yùn)算符號(hào)也可以用來使用數(shù)組
詳細(xì)請(qǐng)看下方代碼。
三目運(yùn)算符號(hào)(數(shù)組版本)
*#include<stdio.h>
#define n 3//這是常量無法被改變的量,放進(jìn)了n里面也就是三個(gè)。
int main(){
int i,j,z,max;
int a[n];
printf("請(qǐng)輸入三個(gè)數(shù)字:");
for(i=0;i<n;i++)
{
scanf("%d,",&a[i]);
}
for(j=0;j<n;j++)
{
max=(max[j])?max:a[j];
}
printf("%d",max);
}
關(guān)于上方的代碼我有一點(diǎn)要說如果你要自己輸入幾個(gè)數(shù)字去判定最大值那么就不要使用define
直接使用循環(huán)。下方的代碼就是你自己去輸入你要從幾個(gè)數(shù)字找最大值。
#include<stdio.h>
int main(){
int min=10000000,max=0,j;
int n;
printf("您想輸入幾個(gè)數(shù)字:");
scanf("%d",&n);
int a[n];
for(j=0;j<n;j++)
{
printf("請(qǐng)輸入第%d個(gè)數(shù)字",j+1);
scanf("%d",&a[j]);
max=(max>a[j])?max:a[j];
min=(min<a[j])?min:a[j];
}
printf("min=%dmax= %d",min,max);
return 0;
}
補(bǔ)充說明
我們?cè)谶M(jìn)行數(shù)組的比較時(shí)候我們計(jì)算機(jī)不是直接看的元素而是下標(biāo)。 而下標(biāo)又往往是從0開始的也就是首地址。 記住數(shù)組其實(shí)也是一個(gè)指針。
我們?cè)趥鬟f數(shù)據(jù)的時(shí)候往往是從下標(biāo)的第一個(gè)數(shù)據(jù)開始傳輸。 第二眼計(jì)算機(jī)才看得到你的元素。 所以我們?cè)趯憯?shù)組的時(shí)候往往要寫一些循環(huán)。文章來源:http://www.zghlxwxcb.cn/news/detail-717308.html
有疑問的小伙伴們可以直接在評(píng)論區(qū)留言喲我會(huì)看的??????????
咱們下期再見。文章來源地址http://www.zghlxwxcb.cn/news/detail-717308.html
到了這里,關(guān)于C語言三個(gè)數(shù)字比大小詳細(xì)寫法合集比細(xì)狗還細(xì)(12種方法還不夠你用嗎)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!