㈠ 使用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 保存弊卖第一个数与平均值的差的绝对值,后面的数的差的绝对值与保存的判断,租谨逗如果小于保存的值,则保持当晌友前数据,遍历一遍即可找到最接近的。