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

编写奖金问题的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日

悬赏问题

  • ¥20 unity实习让我做一个程序
  • ¥15 idea tomcat和sql驱动不匹配吗
  • ¥15 如何查看h3c 5130s-28f-si交换机配置 及更改网口
  • ¥15 HFSS仿真喇叭天线阵列方向图出现异常
  • ¥15 blender自发光强度
  • ¥15 FIR滤波器算法设计与实现(利用库函数firdec()
  • ¥15 利用单片机产生正弦信号,来测量差分放大电路放大倍数和共模放大倍数的思路和仿真
  • ¥60 关于mavlink的论文咨询
  • ¥66 定制开发肯德基自动化网站下单软件
  • ¥15 中科院研发的TextMind(文心)