| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6844 人关注过本帖
标题:求大神解答,用c程序解答
只看楼主 加入收藏
杨奔奔
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-10-30
结帖率:0
收藏
已结贴  问题点数:20 回复次数:13 
求大神解答,用c程序解答
一个单位下设3个班组,每个班组人数不固定,需要统计每个班组的评论平均工资。分别输入3个班组所有职工的工资,当输入–1时表示该班组的输入结束。输出班组号和该班组的平均工资。

最好用循环的嵌套来做。c语言初学者,请不要用高级语言来解答,我看不懂的
搜索更多相关主题的帖子: 平均工资 c语言 c程序 统计 
2016-10-30 14:41
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:5 
用动态链表可行么~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-10-30 16:27
杨奔奔
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-10-30
收藏
得分:0 
回复 3楼 九转星河
貌似不可以,,,我还没学到那,只是初学,。,

不过方便的话你可以把你的方法发过来,学到那可以结合看,谢谢啦
2016-10-30 22:23
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:5 
//先看一下,有问题再说
#include<stdio.h>

double a[3][100];
int num[3]={0};

double avg(int i){
    double sum=0.0;
    int k;
    for(k=0;k<num[i];k++){
        sum+=a[i][k];
    }
    return sum/num[i];
}
void main()
{
    double d;
    int i,j;
    for(i=0,j=0;i<3;i++,j++){//输入三个组
        scanf("%lf",&d);//输入工资
        while(d!=-1.0){//输入不为-1,继续输入
            a[j][num[j]++]=d; //num[j]表示第j组人数
            scanf("%lf",&d);
        }
    }
    for(i=0;i<3;i++){
        printf("%d  %lf\n",i+1,avg(i));
    }
}
2016-10-30 22:45
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 3楼 杨奔奔
由于每一组的人数不是确定的,那最直接的做法就像4楼的那样声明一个足够大的数组,虽然这样有点浪费储存空间,但这样也是可行的。

[此贴子已经被作者于2016-10-31 18:41编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-10-31 18:39
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:5 
回复 5楼 九转星河
有必要一个大的数组吗???
这题只要一个简单的数组wages[3]就行了吧。
收到的鲜花
  • 九转星河2016-10-31 22:08 送鲜花  1朵   附言:我很赞同
2016-10-31 21:17
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 6楼 linlulu001
是哦,不必要记录每一个成员的数据,直接累加就行了,又不是要输出每个成员的工资(一时脑筋绕不过来)。多谢指点。

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-10-31 22:08
杨奔奔
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-10-30
收藏
得分:0 
回复 4楼 word123
这是数组把,还没学到,尴尬,学到那我会重新来看看的,谢谢帮助,这是用最基础的做的吧,你看看对不对。。。
#include<stdio.h>
void main()
{
int i;
for(i=1,i<=3,i++)
 {
   int num;
   float pay=0,sum=0;
   do
      {
       scanf("%f",&pay);
       sum=sum+pay;
       num++;
      }
      while(pay!=–1)
      prinrf("第%d班组的平均工资为%f\n",i,sum/num);
   }
 }
2016-11-02 19:40
杨奔奔
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-10-30
收藏
得分:0 
回复 7楼 九转星河
你看一下我的回帖,可以看一下这样对不对。
2016-11-02 19:41
杨奔奔
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-10-30
收藏
得分:0 
回复 6楼 linlulu001
2016-11-02 19:41
快速回复:求大神解答,用c程序解答
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032612 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved