㈠ 使用c語言編寫程序,找出五個數中和平均值最為接近的一個數
#include <stdio.h>
#include <math.h>
int main()
{
int a[5];
int i;
int flag = 0;
float sum = 0,aver;
float min ;
printf("input 5 numbers:");
for(i = 0; i < 5; i++)
{
scanf("%d",&a[i]);
sum = sum+a[i];
}
aver = sum/5;
min = fabs(a[0]-aver);
for(i = 0; i < 5; i++)
{
if(fabs(a[i] - aver) < min)
{
min = fabs(a[i] - aver);
flag = i;
}
}
printf("離平均值最近的是a[%d] = %d\n",flag,a[flag]);
}
㈡ c語言輸出n個成績中小於平均值並且最接近平均值的數.
#include <iostream>
#include <cstdlib>
using namespace std;
int cmp(const void *a,const void *b)//快速排序的比較函數
{
return *(int *)a - *(int *)b;
}
int main()
{
int n,a[25],i,ans=-1;//ans是保存最終的答案
float count=0,ava;//ava是平均值
cin>>n;
for(i=0; i<n ;i )
{
cin>>a[i];
count =a[i];//存儲總和
}
qsort(a,n,sizeof(a[0]),cmp);//快速排序
ava = count/n;
for(i=0 ;i<n ;i )
if(a[i]<ava)//因為排過序,所以只要小於平均值,肯定更接近平均值,所以更新
ans = a[i];
else//如果大於平均值,說明已經找到,就可以退出了
break;
cout<<"平均值是:"<<ava<<endl<<"答案是:"<<ans<<endl;
return 0;
}
如果我的回答解決了你的問題,請採納,這是對我勞動的尊重。我花了時間為你寫程序,如果你不懂再問我。
㈢ c語言5個數中與平均值最接近的一個數
#include<stdio.h>
#include<math.h>
intmain(){
doublenum[5],sum=0,avg,MostNearAvg=0;
inti;
for(i=0;i<5;i++){
scanf("%lf",&num[i]);
sum+=num[i];//每輸入一位數時則加到sum中
}
avg=sum/5;//計算平均數
MostNearAvg=num[0];
//對每一個數與平均值的差的絕對值比較,
//較小的即為MostNearAvg(最接近平均值的數)
for(i=1;i<5;i++){
if(fabs(num[i]-avg)<fabs(MostNearAvg-avg))
MostNearAvg=num[i];
}
printf("5個數中與平均值最接近的一個數為:%.2f ",MostNearAvg);
return0;
}
㈣ C語言 輸入一整形數組,輸出與平均值最接近的兩整數.
#include<stdio.h>
#include<math.h>
main()
{
int a[100],i,j,n,n1,t;
float av=0.0;
printf("How many numbers,n=");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
av+=a[i];
}
av/=n;
for(j=0;j<2;j++)
{
n1=j;
for(i=1;i<n;i++)
if(abs(av-a[i])<abs(av-a[n1]))n1=i;
t=a[j]; a[j]=a[n1]; a[n1]=t;
}
printf("%d %d\n",a[0],a[1]);
}
㈤ 用C語言求一個數組中與其平均數最相近的兩個數
能夠,很簡單嘛,首先排序(假設按照從小到大),算出數組中元素之和,求平均值,然後從排序後的數組第一個元素開始知道找到一個元素比這個平均數大,則這個數和其前面那個數就是帶找數據。語文差,請多多海涵。若要程序,10分鍾
㈥ c語言編程 從鍵盤輸入10個數存入一堆數組中,並找出與平均值最接近的數
#include<iostream>
#include<cmath>
#defineN10
usingnamespacestd;
intmain(){
intarr[N];
inti=0;
floatres,avr;
intk,s=0;
while(i!=N){//循環輸入
//cout<<s<<endl;//調試用
cin>>arr[i];//輸入N個數據
s+=arr[i];//計算N個數據總和
++i;
}
avr=s/N;//計算平均數
res=arr[0];//假設所求結果與平均數的相差最小值為第一個數據
cout<<avr<<endl;
for(i=0;i!=N;++i){
if(res>abs(arr[i]-avr)){//計算每一個數與平均數的差值,是絕對值
//再比較原來的假設最小值,是否真的最小
k=i;
res=abs(arr[i]-avr);//每一次都保存相差最小差值與數組下標
}
}
cout<<"平均是:"<<avr<<"最接近的是:"<<k<<":"<<arr[k]<<endl;//輸出結果
return0;
}
圖示用的是N=4的效果圖。
㈦ 問個C語言小白問題:輸入n個數,輸出其中與平均值最接近的元素的值記下標。
#include<stdio.h>
#include<math.h>
double getAvg(int a[],int n)
{
int i,sum=0;
float ave;
for(i=0;i<n;i++)
sum+=a[i];
ave=1.0*sum/遲陵慶n;
return ave;
}
int getIndex(int a[],int n,double x)
{
int i,xiabiao;
double temp;
temp=fabs(a[0]-x);
for(i=1;i<n;i++)
{
if(fabs(a[i]-x)<temp)
{
temp=fabs(a[i]-x);
xiabiao=i;
}
}
return xiabiao;
}
int main()
{
int a[100],n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
printf("%d\n",getIndex(a,n,getAvg(a,n)));
return 0;
}
幫你稍微汪拍改了下,不碼握過幾乎是沒變……
㈧ C語言找到與平均值最近的數組下標並輸出
#include<stdlib.h>
#include<math.h>
#include頃寬<time.h>
voidmain(){
inti,k=0;
doubles=0,avg,j,a[15];
srand(time(NULL));
for(i=0;i<15;i++){
a[i]=rand()%31+160;
s+=a[i];
printf("%.f",a[i]);
}
avg=s/15.0;
printf(" 平均值:%.1f ",avg);
j=abs(a[0]-avg);
for(i=1;i<15;i++)
if(abs(a[i]-avg)<j)
{j=abs(a[i]-avg);k=i;}
for(i=0;i<15;i++)
if(a[i]==a[k])
printf("%d讓陸",i);
}
//題目要求找到與平均值最近的學生的數組下標,並未說只輸出一個下標。因此本程序考慮如果出現多個滿足條件的元素,輸出所有下標。運坦乎頃行示例:
㈨ 用C語言求10個數中最接近平均值的數,要求第一行顯示這10個數,第二行顯示最接近的數
回答樓主如下:
絕對值可以用fabs,但是不用這樣麻煩,可以簡單的判斷一下是否為負,如果是,乘以-1取其相反數就行啊 :)
我寫的程序如下,調試完畢,請樓主參考~希望有用~~
#include "stdio.h"
#include "stdlib.h"
void main()
{
int i;
int number[10], pos = 0;
int total = 0;
double average, mindelta, delta;
for(i=0; i<10; i++)
{
printf("please input the number of (%d) : ", i+1);
scanf("%d", &(number[i]));
total += number[i];
}
average = (double) total;
average /= 10.0;
mindelta = average - number[0];
if(mindelta < 0)
mindelta *= -1;
for(i = 1; i < 10; i++)
{
delta = average - number[i];
if(delta < 0)
delta *= -1;
if(delta < mindelta)
{
pos = i;
mindelta = delta;
}
}
printf("The average value is %.2f, and the %d one (%d) is the nearest.\n",
average, pos+1, number[pos]);
}
㈩ C語言中,找出與平均值最接近的數
1 先求出平均值,
2 保存弊賣第一個數與平均值的差的絕對值,後面的數的差的絕對值與保存的判斷,租謹逗如果小於保存的值,則保持當晌友前數據,遍歷一遍即可找到最接近的。