A. c語言如何求一個數組的最大值和最小值
data_type
max=0;//定義兩個全局變數,max表示最大值
data_type
min=0;//min表示最小值
void
func(data_type
a[],int
n)//傳遞數組名與數組的大小n
{
max=min=a[0];//初始化
for(int
i=0,i<n,i++)//循環n次
{
if(max<a[i])
max=a[i];//如果當前的a[i]比max大,則max取a[i]
if(min>a[i])
min=a[i];//同理
}
reture;//返回
}
B. 請教c語言高手,關於數組求最小值和次小值
#include<stdio.h>
#define SIZE 8
void find(int a[],int size,int*p1,int*ap1,int*p2,int*ap2);
int ifmin(int a1,int a2);
main()
{
int a[SIZE]={5,15,25,76,16,45,55,35};
int min,submin,amin,asubmin;
if(SIZE<=1)
{ printf("There should be more numbers.");
return 0;}
find(a,SIZE,&min,&amin,&submin,&asubmin);
printf("The smallest is a[%d]=%d\n",min,amin);
if(submin!=-1)
printf("The subsmallest is a[%d]=%d\n",submin,asubmin);
else printf("All the numbers are the same.\n");
return 0;
}
void find(int a[],int size,int*p1,int*ap1,int*p2,int*ap2)
{
int i=1,k,j;
k=ifmin(a[0],a[1]);
while(k==0&&i<=size-2)
{i++;
k=ifmin(a[0],a[i]);} /*針對數組前幾個值相等的情況*/
if(k==0)
{*ap1=a[0]; /*對應於所有值都相等的情況*/
*p1=0;
*p2=-1;}
else if(k==-1) /*先賦初值*/
{*p1=0;
*ap1=a[0];
*p2=i;
*ap2=a[i];}
else
{*p1=i;
*ap1=a[i];
*p2=0;
*ap2=a[0];}
for(j=i+1;j<=size-1;j++) /*在循環中修正*/
{if(*ap1>a[j])
{
*ap2=*ap1;
*p2=*p1;
*ap1=a[j];
*p1=j;}
else if(*ap1!=a[j]&&*ap2>a[j]) /*確保次小值不被多次出現的最小值覆蓋*/
{*ap2=a[j];
*p2=j;}}
}
int ifmin(int a1,int a2) /*判斷值是否相等*/
{
if(a1==a2)
return 0;
else if(a1<a2)
return -1;
else return 1;
}
C. c語言編程利用數組的知識求一組數據的最小值
用C11的變長數組,但是最終還是需要確定數組a裡面的n值,變長數組最主要是用來做數值計算的。我覺得你提出的這個問題其實沒有多大的實際意義,可以考慮用鏈表。
D. c語言,輸入30個數並放在一個數組中,輸出其中的最大值和最小值,並求30個數的和以及平均數
#include<stdio.h>
voidmain()
{
inti,max,min,s=0,a[30];
scanf("%d",&a[0]);
max=a[0];min=a[0];s=a[0];
for(i=1;i<30;i++)
{
scanf("%d",&a[i]);
s+=a[i];
if(min>a[i])min=a[i];
if(max<a[i])max=a[i];
}
printf("max=%d,min=%d s=%d,avg=%.2f",max,min,s,s/30.0);
}
E. C語言編程,多種方法求一個數組里的最大值和最小值。
因為只是找出最大最小值,直接循環每個比較一次就可以。
#include<stdio.h> //挑選法
#define N 10
void main() { int a[N],m,n,i;
for ( i=0;i<N;i++ ) scanf("%d",&a[i]);
m=n=a[0]; for ( i=1;i<N;i++ ) if ( m<a[i] ) m=a[i]; else if ( n>a[i] ) n=a[i];
printf("最大值%d,最小值%d ",m,n);
}
#include<stdio.h> //排序法
#define N 10
void main() { int a[N],i,j,k;
for ( i=0;i<N;i++ ) scanf("%d",&a[i]);
for ( i=0;i<N-1;i++ ) for ( j=i+1;j<N;j++ ) if ( a[i]<a[j] ) {k=a[i];a[i]=a[j];a[j]=k;}
printf("最大值%d,最小值%d ",a[0],a[N-1]);
}
(5)c語言如何求數組連續多少項和最少擴展閱讀:
C語言包含的各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
F. c語言求數組總最大值與最小值
inta[10],i,min=a[0],max=a[0];//此處a[0]尚未初始化,max與min成為一個隨機數
修改後如下:
#include<stdio.h>
intmain(){
inta[10],i,min,max;
scanf("%d",&a[0]);
max=min=a[0];
for(i=1;i<9;i++){
scanf("%d",&a[i]);
if(a[i]>max){
max=a[i];
}elseif(a[i]<min)
min=a[i];
}
printf("%d,%d",min,max);
return0;
}
G. 用c語言編寫求數組元素最大值和最小值!謝謝各位大佬
1、apply方式,借用Math中的max/min方法實現。
H. C語言,求數組最大最小值
求數組中的最大值和最小值,一般使用假設法,即假設數組的第1個元素為最大值,同時也是最小值,然後遍歷數組,找到最大值和最小值。示例如下:
#include<stdio.h>
intmain()
{
inta[]={1,2,3,4,5,6,7,8,9,10};
intmax,min;
max=min=a[0];//假設第1個元素即是最大值也是最小值。
intmax_pos=0,min_pos=0;
//遍歷數組,找出數組a中的最大數和最小數
for(intinx=0;inx!=sizeof(a)/sizeof(int);++inx){
if(a[inx]>max)max=a[inx],max_pos=inx;
elseif(a[inx]<min)min=a[inx],min_pos=inx;
}
printf("最大數:%d 最小數:%d ",max,min);
return0;
}
I. C語言用數組求10個數的最大最小值總和平均值
#include "stdio.h"
void main()
{
int i;
float num[10],max,min,sum,ave;
for(i=0;i<10;i++)
scanf("%f",&num[i]);
printf("\n");
max=num[0];
for(i=1;i<10;i++)
if (num[i]>max)
max=num[i];
min=num[0];
for(i=2;i<10;i++)
if (num[i]<min)
min=num[i];
sum=0.0;
for(i=0;i<10;i++)
sum=sum+num[i];
ave=sum/10;
printf("max=%f,min=%f,sum=%f,ave=%f",max,min,sum,ave);
}
數組的下標都是從0開始,而不是從1開始,定義為num[10],如果你想取第10個數的時候,就只能是num[9],否則會越界
J. C語言數組怎樣求和,
先獲取數組長度,然後用for循環,從數組中獲取值進行累加求和。
#include
#include
int main()
{
int n;
int val;
int * a;
int sun = 0, i;
printf("請輸入數組的長度:");
scanf("%d", &n);
printf(" ");
a = (int *)malloc(n * sizeof(int));//為數組a動態分配內存
for(i = 0; i < n; i++)
{
printf("請輸入數組的第%d個元素的值:", i+1);
scanf("%d", &val);
printf(" ");
a[i] = val;
}
for (i = 0; i < n; i++)
{
sun+=a[i];//sun+=a[i]相當於sun=sun+a[i];
}
printf("sun = %d ",sun);
free(a);//釋放a動態分配的內存
return 0;
}
(10)c語言如何求數組連續多少項和最少擴展閱讀:
一個數組中的所有元素具有相同的數據類型(在C、C++、Java、pascal中都這樣。但也並非所有涉及數組的地方都這樣,比如在Visual Foxpro中的數組就並沒這樣的要求)。當然,當數據類型為 Variant 時,各個元素能夠包含不同種類的數據(對象、字元串、數值等等)。可以聲明任何基本數據類型的數組,包括用戶自定義類型和對象變數。
如果要用戶輸入的是一個數組,一般是用一個循環,但是在輸入前也需要固定數組的大小。
compact跟變長數組沒有太大的關系,也應該用不到變長數組。因為一般的傳數組到函數中就是傳數組的地址和元素的個數的,那隻是一個提示,不是要求。