7-5 实验7_5_发工资 (100 分)

每到月底,公司就要给员工发工资。每个员工的工资都是由(100,50,20,10,5,2,1) 7种面值的钞票组成的。为了发工资的简便,公司会尽量给员工发较大面值的钞票,例如某个员工的工资为1260,那么公司会给员工12张100元的、1张50元的、1张10的钞票。你的任务是,告诉你某员工的工资,你来计算如何给员工发工资。

输入格式:

为一个正整数n(可以用int存储),代表某位员工的工资。

输出格式:

为给该员工发的钞票面值与数量。具体格式见样例。

输入样例:

2352

输出样例:

100:23
50:1
2:1

代码实现:

#include <stdio.h>

int main()
{
	int n,i;
	int change[7]={100,50,20,10,5,2,1};
	int cnt[7]={0};
	scanf("%d",&n);
	for(i=0;i<7;i++)
	{
		while(n/change[i])
		{
			cnt[i]++;
			n-=change[i];
		}
	}
	for(i=0;i<7;i++)
		if(cnt[i]!=0)
		    printf("%d:%d\n",change[i],cnt[i]);
	return 0;
 } 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
我可以回答这个问题。以下是SQLSERVER环境下的代码: 1、创建工资表: CREATE TABLE stuff_salary ( stuff_no VARCHAR(10) PRIMARY KEY, stuff_pt VARCHAR(10), stuff_nm VARCHAR(10), stuff_py INT, stuff_gp INT, stuff_jp INT, stuff_op INT, stuff_yf INT, stuff_kq INT, stuff_sf INT ); 2、增加扣水电费: ALTER TABLE stuff_salary ADD stuff_ks INT; UPDATE stuff_salary SET stuff_yf = stuff_py + stuff_gp + stuff_jp + stuff_op, stuff_sf = stuff_yf - stuff_kq - stuff_ks; 3、插入100个模拟记录: DECLARE @i INT = 1; WHILE @i <= 100 BEGIN DECLARE @stuff_no VARCHAR(10) = 'AB' + RIGHT('00000' + CAST(@i AS VARCHAR(5)), 5); DECLARE @stuff_pt VARCHAR(10) = '部门' + CHAR(ASCII('A') + CAST(RAND() * 5 AS INT)); DECLARE @stuff_nm VARCHAR(10) = 'nm' + CHAR(ASCII('A') + CAST(RAND() * 5 AS INT)); DECLARE @stuff_py INT = CAST(RAND() * 100 + 200 AS INT); DECLARE @stuff_gp INT = CAST(RAND() * 100 + 300 AS INT); DECLARE @stuff_jp INT = CAST(RAND() * 100 + 150 AS INT); DECLARE @stuff_op INT = 180; DECLARE @stuff_kq INT = 200; DECLARE @stuff_ks INT = CAST(RAND() * 100 AS INT); INSERT INTO stuff_salary VALUES (@stuff_no, @stuff_pt, @stuff_nm, @stuff_py, @stuff_gp, @stuff_jp, @stuff_op, @stuff_py + @stuff_gp + @stuff_jp + @stuff_op, @stuff_kq, @stuff_py + @stuff_gp + @stuff_jp + @stuff_op - @stuff_kq - @stuff_ks); SET @i = @i + 1; END; 4、建立视图和游标: CREATE VIEW stuff_view AS SELECT stuff_no, stuff_pt, stuff_nm FROM stuff_salary; DECLARE @stuff_no VARCHAR(10), @stuff_pt VARCHAR(10), @stuff_nm VARCHAR(10); DECLARE stuff_cursor CURSOR FOR SELECT stuff_pt, stuff_nm FROM stuff_view; OPEN stuff_cursor; FETCH NEXT FROM stuff_cursor INTO @stuff_pt, @stuff_nm; WHILE @@FETCH_STATUS = BEGIN PRINT '部门:' + @stuff_pt + ',姓名:' + @stuff_nm; FETCH NEXT FROM stuff_cursor INTO @stuff_pt, @stuff_nm; END; CLOSE stuff_cursor; DEALLOCATE stuff_cursor; 5、查询最高和最低应发工资姓名: SELECT stuff_nm FROM stuff_salary WHERE stuff_yf = (SELECT MAX(stuff_yf) FROM stuff_salary); SELECT stuff_nm FROM stuff_salary WHERE stuff_yf = (SELECT MIN(stuff_yf) FROM stuff_salary);

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值