⑴ c語言編程:輸入n個整數,求其中最大值和最小值,並輸出他們倆對應的序號,不用數組。 這個怎麼寫呀
#include<stdio.h>
#include<math.h>
intmain()
{intn,i,x,max,min,i1=0,i2=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{scanf("%d",&x);
if(i==0)max=min=x;
elseif(x>max){max=x;i1=i;}
elseif(x<min){min=x;i2=i;}
}
printf("最大的數是第%d個,是%d
最小的數是第%d個,是%d
",i1+1,max,i2+1,min);
}
⑵ 不用數組,只用循環語句如何用C語言寫輸入1~5五個數字,輸出最大值最小值的程序
聲明一個存放最大值的變數max,再聲明一個存放最小值的變數min。輸入第一個數字後,把它同時賦給max和min,以後每輸入一個數字都和max、min分別比較,把比max大的賦給max,把比min小的賦給min,這樣就保證max是所輸入的數字中值最大的,而min是輸入的數字中值最小的,最後輸出max和min即可。代碼如下:
#include"stdio.h"
#include"stdlib.h"
intmain(intargc,char*argv[]){
inti,n,max,min;//用max記錄輸入數字中的最大值,min記錄最小值
printf("PleaseinputsomeNumbers(Otherend,)... ");
printf("(Inputmorethan5,onlyfortheprevious5) ");
for(i=0;i<5;i++){
if(scanf("%d",&n)!=1)//輸入非數字則結束
break;
if(i>0&&i<5){
if(max<n)//保證max是所輸入的數字中最大的
max=n;
if(min>n)//保證min是所輸入的數字中最小的
min=n;
printf("%d",n);
}
else
printf("Yourinputis:%d",max=min=n);//第一個數字同時賦給max和min
}
if(i)
printf(" TheMAXis%d TheMINis%d ",max,min);
else
printf(" Noinputdigital... ");
return0;
}
運行樣例如下:
⑶ C語言,求n個數得的最大值,最小值,平均值,用函數,不要用數組
#include"stdio.h"
structnumber
{
floatvalue;//值
structnumber*next;//指向後繼
};
structnumber*head=NULL;//頭指針
structnumber*p1;//活動指針
structnumber*p2;//尾指針
floatmax,min,sum,count;//最大值、最小值、和、數量
//輸入數值
voidinput()
{
for(;;)
{
//申請內存空間並賦值
p1=(structnumber*)malloc(sizeof(structnumber));
scanf("%f",&p1->value);
p1->next=NULL;
//判斷是否等於-1
if(p1->value==-1)
{
free(p1);
return;
}
//判斷頭指針是否為空
if(head==NULL)
head=p1;
else
p2->next=p1;
p2=p1;
}
}
//求最大值、最小值、和、數量
voidmaxMin()
{
//初始化三個值
p1=head;
max=min=p1->value;
sum=count=0;
while(p1!=NULL)
{
//找最大值
if(p1->value>max)
max=p1->value;
//找最小值
if(p1->value<min)
min=p1->value;
sum+=p1->value;//求和
count++;//數量
p1=p1->next;
}
}
//輸出所有值
voidprint()
{
p1=head;
while(p1!=NULL)
{
printf("%g",p1->value);
p1=p1->next;
}
printf(" ");
}
intmain()
{
printf("請連續輸入n個整數,輸入-1結束 ");
input();
printf("************** ");
maxMin();
printf("最大值=%g ",max);
printf("最小值=%g ",min);
printf("平均值=%g ",sum/count);
}
⑷ 輸入20個數,求其中最大數和最小數 c語言 不用數組 用循環結構
C語言語法記不太清了,給你寫一個pseudocode。
其實這個就是一個簡單的排序題,排序演算法不限。建議使用最符合直覺的選擇排序。
考慮到不能使用數組,那就只能在每次輸入時比較,立即出結果
input 一個數, prev為輸入的上一個數
int MAX = prev;
int MIN = prev;
if(curr > MAX){ MAX = curr;}
else if(curr < MIN){MIN = curr;}
最後MAX里就是最大的數,MIN就是最小的數
⑸ 利用C語言求n個整數中的最大值、最小值、累加和與平均值
可以不用數組實現.
#include
void
main()
{
int
i;
float
tmp,
max
=
-32768.0,
min
=
32767.0,
sum
=
0.0;
for
(i
=
0;
i
<
10;
i++)
{
scanf
("%f",
&tmp);
if
(tmp
>
max)
max
=
tmp;
if
(tmp
<
min)
min
=
tmp;
sum
+=
tmp;
}
printf
("最大值為:%.1f\n",
max);
printf
("最小值為:%.1f\n",
min);
printf
("平均值為:%.1f\n",
(sum
-
max
-
min)
/
8);
}