c语言习题

        程序要求:计算形参x所指数组中N个数的平均值(规定所有的数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至数组的后部,平均值作为函数值返回,在主函数中输入平均值和移动后的数据。

        例如:有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为30.500000 移动后的输出为:46 32 40 45 48 30 6 17 15 26

        在编写程序之初的函数编写中,定义的各位综合出现了前后不符的情况,例如,之前定义的Sint整型变量,但是之后,在输出s的时候,却把它当成了和ave相同概念的变量,用%f浮点型变量进行输出。这个错误的出现,表明了我在程序编写中,思路不是特别清晰,定义的变量没有事先考虑清楚。改正错误最好的办法是在写程序之前,列出一个相对清晰的提纲,这使得程序在修改和备注的时候能有一个较为明了的辅助策略。

 

 

/*****************************************************

copyright (C), 2014-2015, Lighting Studio.Co.,     Ltd.

File name

AuthorJerey_Jobs    Version:0.1    Date:

Description

Funcion List:

*****************************************************/

 

#include <stdio.h>

float ave;

float average(int a[])

{

         inti;

         floats=0;

         for(i=0;i<10;i++)

                   s=s+a[i];

         printf("数组各数之和等于%f\n",s);

         ave=s/10;

         returnave;

}

 

int main()

{

 

         inta[10],b[10];

         inti,j=0;

         floataverage(int a[]);

         printf("input:");

         for(i=0;i<10;i++)

                   scanf("%d",&a[i]);

         average(a);

         printf("average=%f\n",ave);

         for(i=0;i<10;i++)

         {

                   if(a[i]>ave)

                            b[j++]=a[i];

         }

 

         for(i=0;i<10;i++)

         {

                   if(a[i]<ave)

                            b[j++]=a[i];

         }

         for(j=0;j<10;j++)

                   printf("%d",b[j]);

         printf("\n");

         return0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值