| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 479 人关注过本帖
标题:循环问题 结果错误 求指点
只看楼主 加入收藏
张晓旭
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-4-22
结帖率:100%
收藏
已结贴  问题点数:1 回复次数:9 
循环问题 结果错误 求指点
编写程序,计算3位职工的实发工资(通过键盘输入每位职工岗位工资、薪级工资、基础津贴、住房补贴、住房公积金,实发工资是这几项的累计);并计算本月部门工资总支出,并输出最高和最低工资(工资最高不超过1万,最低不少于800元),计算低于3000元以下的人数。
#include<stdio.h>
main()
{
    float g,z=0,s=0,max=0,sum,min=10000;
    char name[8];
    int i,k;
    for(i=1;i<=3;i++)
    {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
        sum=0;  
        printf("请输入第%d位职工的姓名:\n",i);
        scanf("%s",name);
        printf("请输入岗位工资、薪级工资、基础津贴、住房补贴、住房公积金:\n");
        for(k=1;k<=5;k++)
        {
            scanf("%f",&g);
            sum+=g;
        }
        printf("实发工资为:%.2f\n",sum);
            sum=(sum<3000)? s++:s;   
            if(sum>=800&&sum<=10000)
        {
            max=min=sum;
            if(max<sum)max=sum;
            if(min>sum)min=sum;
        }
        z+=sum;
        
    }
    printf("工资低于3000的人数为:%d\n",s);
    printf("最高工资为:%f\n最低工资为:%f\n",sum,sum);
    printf("本月工资总支出为:%.2f\n",z);
}

最大最小值没弄出来 3000以下的没弄出来
搜索更多相关主题的帖子: 住房公积金 编写程序 最低工资 include 键盘 
2015-04-23 19:38
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:0 
...

[ 本帖最后由 我爱吃青菜 于 2015-4-23 20:27 编辑 ]
2015-04-23 20:17
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
程序代码:
/*你的代码有很多错误的地方,我帮你修改了当输入一个人时的代码*/
#include<stdio.h>
#include<stdlib.h>

#define NUM_1 4

int main(void)
{
    float g[NUM_1],sum=0;
    char name[8];
    int k;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

   

    printf("请输入这位职工的姓名:\n");
    scanf("%s",name);
    printf("请输入岗位工资、薪级工资、基础津贴、住房补贴、住房公积金:\n");
    for(k=0;k<=NUM_1;k++)
    {
        scanf("%f",&g[k]);
    }
    printf(" 您输入岗位工资,薪级工资,基础津贴,住房补贴,住房公积金为: \n");
    for(k=0;k<=NUM_1;k++)
    {
           printf("%10.2f",g[k]);
    }
    printf("\n");
    for(k=0;k<=NUM_1;k++)
    {
        sum+=g[k];
    }
    printf("%s这个月的工资是 $%.2f\n",name,sum);
   

    return 0;
}
2015-04-23 21:28
张晓旭
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-4-22
收藏
得分:0 
回复 3楼 hjx1120
我的程序输出实发工资没错误  比较工资最大最小,工资低于3000的结果有错误 求指点
2015-04-24 08:55
彩彩
Rank: 2
等 级:论坛游民
帖 子:9
专家分:15
注 册:2015-4-20
收藏
得分:1 
你看看吧,另外你这种编码很不规范,别人不好看懂

#include <stdio.h>
#include <stdlib.h>

int main()
{
   char name[10];
    int total_salary=0;
    int salary[5];
   int j,i, sum=0,max_salary,min_salary,part_total_salary=0;
   max_salary=min_salary=0;
   for(j=0;j<3;j++)
   {
    printf("please input the staff name:");
   scanf("%s",name);
    printf("please input the valuse salary:");
    for(i=0;i<5;i++)
      {  scanf("%d",&salary[i]);
         total_salary=total_salary+salary[i];  //个人实发工资;
      }
      part_total_salary=part_total_salary+total_salary;  //部门总工资;
      if(total_salary<3000)    //计算低于3000人数;
           sum++;
        if(total_salary<10000&&total_salary>8000)   //判断最低最高工资;
             {
                 if(max_salary<total_salary)
                      max_salary=total_salary;
                 if(min_salary>total_salary)
                    min_salary=total_salary;
             }
             total_salary=0;
   }
             printf("the number of low of 3000 has :%d\n",sum);
             printf("the max_salary is:%d\n",max_salary);
             printf("the min_salary is:%d\n",min_salary);

   return 0;
}
2015-04-24 09:44
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
有毛病的是这句:sum=(sum<3000)? s++:s;  
=的优先级低于?:,所以这句执行的结果是给sum赋予s++或者s的值,那不就乱了吗

总有那身价贱的人给作业贴回复完整的代码
2015-04-24 09:55
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
回复 4楼 张晓旭
你的内for就以经错了~外for 还能对,好吧!我也是醉了
2015-04-24 10:09
张晓旭
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-4-22
收藏
得分:0 
2015-04-24 10:44
张晓旭
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-4-22
收藏
得分:0 
回复 6楼 embed_xuel
哦 这个错误明白啦
2015-04-24 10:47
张晓旭
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-4-22
收藏
得分:0 
回复 5楼 彩彩
谢谢啦哈
2015-04-24 11:28
快速回复:循环问题 结果错误 求指点
数据加载中...
 
   



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

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