计算机C语言程序编程

考题:定义一个int类型的数组,数组元素为20个,随意赋值20个去100以内的值,在做一下处理。1.小于60的值都加上5,并且储存到原来的位置中。2.求20个元素的平均值... 考题:定义一个int类型的数组,数组元素为20个,随意赋值20个去100以内的值,在做一下处理。
1.小于60的值都加上5,并且储存到原来的位置中。
2.求20个元素的平均值,并输出平均值。
3.将20个元素按照降序排序,并输出大于平均值的元素。
要求:while循环,for循环各自至少用到一次,上面3步处理分别用自定义函数实现,并将这三个函数放在自定义文件中然后在主函数中调用它完成以上功能。

考试求答案,不需要用软件,TXT格式就可以
答案请发到sswsy_653@163.com
谢谢,急用啊!
展开
 我来答
jaybestwang
2011-11-23 · TA获得超过4106个赞
知道小有建树答主
回答量:940
采纳率:0%
帮助的人:698万
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void fun1(int *arr){
//小于60的值都加上5,并且储存到原来的位置中
for(int i = 0; i<20; i++){
if(arr[i] < 60) arr[i] += 5;
}
}

void fun2(int *arr, double & avg){
//求20个元素的平均值,并输出平均值
for(int i = 0; i<20; i++){
avg += arr[i];
}
avg = avg/20;
printf("数组平均值为:%.2f\n", avg);
}

void fun3(int *arr, double avg){
//将20个元素按照降序排序,并输出大于平均值的元素
for(int i=19; i>0; i--){
for(int j=19; j>20 - i -1; j--){
if(arr[j-1] < arr[j]){
int tmp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = tmp;
}
}
}
for(int i=0; i<20; i++){
if(arr[i] > avg) printf("%d ", arr[i]);
}
printf("\n");
}

int main(){
srand((unsigned int)time(NULL));
int arr[20];
for(int i=0; i<20; i++){
arr[i] = rand()%100;
}
double avg = 0;
fun1(arr);
fun2(arr, avg);
fun3(arr, avg);
return 0;
}
编译通过,能运行!
Eanry
2011-11-23 · 超过16用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:32.6万
展开全部
//初始化并赋值
int ary[20],n,i;
for(i=0;i<20;i++)ary[i]=rnd()*100;

void f1() //小于60的值加5
{ n=0;
while(n<20){ if(ary[n]<60)ary[n]+=5; n++;}
}
float f2() //求平均值
{ long s=0;
for(i=0;i<20;i++)s+=ary[i];
return s/20;
}
void f3() //排序并输出
{ int max;
float avg;
for(i=0;i<20;i++)
{ max=ary[i];
n=i; //保证第i 个元素是余下值中的最大值
while(n<20){ if(ary[n]>max){max=ary[n];ary[n]=ary[i];ary[i]=max; n++;}
}
avg=f2();
printf("Average of 20 is: %f \n Over average list: ",avg);
for(i=0;i++;i<20){if(ary[i]>avg)printf("%d, ",ary[i]);}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
czm0605010127
2011-11-23 · TA获得超过1164个赞
知道小有建树答主
回答量:637
采纳率:96%
帮助的人:38.3万
展开全部
给你发过去了,一共三个文件,我的邮箱是czm_hyt@yahoo.cn
注意查收,验证没有问题。
追问
三个文件我都打不开,能不能把编译好的复制到TXT里面发给我,而且题目要求自定义函数就要三个呢,再加上主函数应该一共四个吧
追答
不好意思啊,我测试了一下啊,公司电脑加密的原因,所有文件打不开的,
我直接拷贝给你

第一个文件 DataPro.c
#include

/**
* @brief 将20个数中小于60的数加5
*/
void Add5(unsigned char a[20])
{
int i;
for (i=0; i Aver)
{
printf("%d\n",a[i]);
}
}

}

第二个文件 DataPro.h
/**
* @brief 将20个数中小于60的数加5
*/
void Add5(unsigned char a[20]);

/**
* @brief 计算20个数的平均值
*/
unsigned char CalAverage(unsigned char a[20]);

/**
* @brief 20个数降序排列
*/
void PaiXu(unsigned char a[10],unsigned char Aver);

第三个文件main.c
#include
#include "DataPro.h"
#include
#include

void main(void)
{
int i;
unsigned char Aver = 0;
unsigned char Data[20] =
{
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
};

srand((unsigned int)time(NULL));

printf("随即生成的20个100以内的数据为:\n");

for(i=0; i<20; i++)
{
Data[i] = rand()%100;
printf("Data[%d] = %d\n", i, Data[i]);
}

printf("将小于60的数加5:\n");
Add5(Data);
for(i=0; i<20; i++)
{
printf("Data[%d] = %d\n", i, Data[i]);
}

Aver = CalAverage(Data);
printf("20个数的平均值为:%d\n",Aver);

printf("将20个数据降序排列,同时输出大于平均值的数:\n");
PaiXu(Data, Aver);

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大陆晴天
2011-11-23 · TA获得超过3817个赞
知道小有建树答主
回答量:890
采纳率:77%
帮助的人:505万
展开全部
你这个是 国二的题目吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式