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

编写奖金问题的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 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
  • ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
  • ¥15 io.jsonwebtoken.security.Keys
  • ¥15 急,ubuntu安装后no caching mode page found等
  • ¥15 联想交换机NE2580O/NE1064TO安装SONIC
  • ¥15 防火墙的混合模式配置
  • ¥15 Ubuntu不小心注销了要怎么恢复啊