燕岑yancen 2022-04-17 21:21 采纳率: 33.3%
浏览 90
已结题

编写奖金问题的matlab语言程序(求解)

过年了,村里要庆祝一下。村长对村里的128个村民说:做一个游戏,让每个人把出生年+月+日得到一个数。例如:1995年11月8日=1995+11+8=2014。然后把这个数报上来。村里有一笔钱要作为游戏的奖金,数额为M元(在程序中可以用常量固定为一个数)。如果有人报上来的数字与M相同,就把这笔钱发给这些人。如果只 有一个人得奖,奖金都归这个人。如 果有多于一个人得奖,则他们平分这 笔钱。现在让我们来写一段程序算算 都有哪些人得到了奖金?得到多少?

以下是我的程序,但是运行结果不对劲
lucky_m=5; %幸运数字.在原程序中需要重复输入128个数据才能显示运行结果。太过繁琐。所以在此只计算10个村民的。
population=10; %村民人数
sum_nms=0;
n=0;
disp('请输入population个村民报的数字:')
nms=zeros(1,population);
for i=(1:population)
nms(i)=input('输入数字:');
end
for i=1:population
sum_nms=sum_nms+nms(i);
end
for i=1:population
if nms(i)==lucky_m
n=n+1; %统计获奖村民人数
disp('获奖村民是第i个:')
i; %输出是第几个村民获奖
end
end
disp('共有n个村民获奖: ')
n;
disp('获奖村民获得的奖金数:')
ave=sum_nms/n; %获奖村民获得的奖金数

  • 写回答

1条回答 默认 最新

  • czy1219 2022-04-17 21:34
    关注

    我用了随机生成的10个数,就不用手动输入了,最后输出奖金的时候需要判断一下,修改后代码如下:

    clear all
    clc
    lucky_m=5; %幸运数字.在原程序中需要重复输入128个数据才能显示运行结果。太过繁琐。所以在此只计算10个村民的。
    population=10; %村民人数
    sum_nms=0;
    n=0;
    % disp('请输入population个村民报的数字:')
    %nms=zeros(1,population);
    nms=round(rand(1,10)*10);
    % for i=(1:population)
    %     nms(i)=input('输入数字:');
    % end
    for i=1:population
        sum_nms=sum_nms+nms(i);
    end
    for i=1:population
        if nms(i)==lucky_m
            n=n+1; %统计获奖村民人数
            disp('获奖村民是第i个:')
            i %输出是第几个村民获奖
        end
    end
    disp('共有n个村民获奖: ')
    n
    disp('获奖村民获得的奖金数:')
    if n==0
        ave=0
    else
        ave=sum_nms/n %获奖村民获得的奖金数
    end
    
    

    如果帮助到你请采纳哦!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月5日
  • 已采纳回答 4月27日
  • 创建了问题 4月17日

悬赏问题

  • ¥15 visual studio2022中文乱码无法解决
  • ¥15 关于华为5g模块mh5000-31接线问题
  • ¥15 keil L6007U报错
  • ¥15 webapi 发布到iis后无法访问
  • ¥15 初学者如何快速上手学习stm32?
  • ¥15 如何自动更换布娃娃图片上的衣服
  • ¥15 心理学eprime编程
  • ¥15 arduino esp8266开发
  • ¥15 stm32单片机通过485发送命令给驱动器控制电机转动,同样的代码f103可以控制电机转动,换到f407不能动了,但是用串口助手调试407显示发送的命令都是正确的,卡了好久了这是发送规则
  • ¥15 stm32f103c8t6最小系统板+2.8寸TFTLCD板子