Ⅰ c語言為什麼我寫程序求最大值,結果求出最小值
以上程序運行時,你的輸入有問題,應該輸入的是以英文逗號隔開兩個數值,你輸成了中文逗號。
Ⅱ c語言任意輸入10個數,計算並輸出最大值和最小值
程序源碼如下:
#include "pch.h"
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int loop = 10;//定義循環次數
int min, max, value;//定義最大值、最小值、輸入值
printf("輸入整數:");//文字提示
do//循環輸入並進行判斷最大最小
{
scanf("%d", &value);//輸入
if (loop == 10) //第一次輸入
{
max = min = value; loop--; continue;//先將max、min放入一個數用於比較
}
else
{
if (value > max) max = value;//找最大值
if (value < min) min = value;//找最小值
loop--;//循環變數遞減
}
} while (loop != 0);
printf("輸入的10個數中,最大數:%d 最小數:%d
", max, min);//輸出最值
return 0;
}
程序運行結果如下:
(2)c語言最大值卻輸出最小值擴展閱讀:
其他實現方式:
#include<stdio.h>voidmain(){
floatnum[10];
inti;
floatmax,min;
for(i=0;i<10;i++)
{
scanf("%f",&num[i]);
if(i==0)
{
max=min=num[i];
}
else
{
if(max<num[i])
{
max=num[i];
}
if(min>num[i])
{
min=num[i];
}
}
}
printf("max=%.2f ",max);
printf("min=%.2f ",min);
}Ⅲ C語言編程序想輸出最大值為什麼輸出最小值!!
#include <stdio.h>
int main()
{
int max(int x,int y);
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("%d\n",c);
return 0;
}
int max(int x,int y)
{
int z;
if(x>y)
{
z=x;
}
else
{
z=y;
}
return (z);
}
試試看
你輸入的時候要這樣 1,5 中間要有逗號的
Ⅳ C語言輸入N個數輸出最大值和最小值
#include<stdio.h>
void main(){
int i,j,temp,count;
printf("請輸入你需要輸入的個數:");
scanf("%d",&count);
while(count<=0||count>10000){
printf("個數必須在1到10000之間!\n\n");
printf("請輸入你需要輸入的個數:");
scanf("%d",&count);
}
int num[count];
for(i=0;i<count;i++){
printf("請輸入第%d個數:",(i+1));
scanf("%d",&num[i]);
}
for(i=0;i<count;i++){
for(j=0;j<count-i-1;j++){
if(num[j]<num[j+1]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
printf("max=%d,min=%d\n",num[0],num[count-1]);
}
Ⅳ c語言輸出最大最小值
C語言中求最大值和最小值,一般都是使用假設法,即先假設某個數是最大值和最小值,然後遍歷比較即可。下面實例,求一個數組中的最大值和最小值,先假設a[0]是最大值,同時也是最小值,然後遍歷數組進行比較,得出結果。
#include<stdio.h>
intmain()
{
inta[]={1,2,3,4,5,6,7,8,9,10};
intmax,min;
max=min=a[0];//假設第1個元素即是最大值也是最小值。
int*p=a;
//遍歷數組,找出數組a中的最大數和最小數
for(intinx=0;inx!=sizeof(a)/sizeof(int);++inx){
if(*(p+inx)>max)max=*(p+inx);
elseif(*(p+inx)<min)min=*(p+inx);
}
printf("最大數:%d 最小數:%d ",max,min);
return0;
}
Ⅵ C語言 三個任意數求輸出最大值最小值
你的錯誤原因在於scanf("%d%d%d"&a,&b,&c);少了一個逗號,應該是scanf("%d%d%d",&a,&b,&c);
以下是三個任意數求輸出最大值最小值正確的代碼:
(6)c語言最大值卻輸出最小值擴展閱讀:
用另外一種方法求三個任意數求輸出最大值最小值
#include <iostream>
using namespace std;
int main()
{
int num1,num2,num3,max,min;
cout<<"任意輸入三個整數:";
cin>>num1>>num2>>num3;
if(num1>num2)
{
max=num1;
min=num2;
}
else
{
max=num2;
min=num1;
}
if(max>num3)
{
max=max;
}
else
{
max=num3;
}
if(min>num3)
{
min=num3;
}
else
{
min=min;
}
cout<<"max="<<max<<endl;
cout<<"min="<<min<<endl;
return 0;
}
Ⅶ C語言問題關於求出最大值和最小值
第一個問題:
為什麼在求最大最小值錢,要把a[0][0]賦值給max,min
答:
因為max,min在最開始沒有初始化,不能直接比較,而因為是比較數組里的值,又不能隨便初始化。所以我們選擇默認第一個數最大(或最小)。
第二個問題:
if語句
有很多個條件符合這個條件啊,怎麼只輸出那個最大的
而其他也符合這個條件的?
答:
我們先默認了最大(或最小值)是第一個數組元素,我們把他依次和後面元素比較,當碰到比它大(或小)的值,我們就把它保存到max(min),並在h,l中保存元素所在數組的位置,所以每次比較完,max(min)里保存的始終是最大(或最小)值。
Ⅷ 編寫一個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跨切循環層的次數。
Ⅸ C語言數值超出了最大值會輸出最小值-1的值
對於有符號數的最大整數值,如果再+1的話,輸出的結果是-1。
以一個位元組的為例子說明這個問題。
char型的最大整數值是127,對應的二進制是: 0111 1111,最高位0表示符號位(0為正,1為負),然後加1的話,就變成了1000 0000,這個你應該知道吧。而這個1000 0000恰好是-1的補碼,因為負數在內存中是以其補碼的形式存放的,所以輸出的結果是-1。
Ⅹ c語言函數找最大值最小值輸出來,求大神解答
#include<stdio.h>
int Max(int a[],int n)
{
int s,max=0;
for(s=1;s<=9;s++)//逐個循環進行比較大小找出最大值
{
if(a[max]<a[s])
max=s;
}
return max;
}
int Min(int a[],int c)
{
int d,min=0;
for(d=1;d<=9;d++)
{
if(a[min]>a[d])
min=d;
}
return min;
}
main()
{
int a[10],i,n;
printf("請任意輸入10個數字\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
int larger;
larger=Max(a,10);//調用Max函數找出最大值並賦值
printf("最大數為%d\n",a[larger]);
int smaller;
smaller=Min(a,10);
printf("最小數為%d\n",a[smaller]);
n=a[larger];
a[larger]=a[smaller];
a[smaller]=n;
for(i=0;i<10;i++)
printf("%2d",a[i]);
}