求救,有一个C语言程序设计编程题目,请高手帮忙,万分感谢

给我们100张纸,其中20张写着10r,10张-5r,70张-r,把他们装在一个盒子里,等下对其进行随机抽取,现在我们要进行40次试验,每次实验前你都要确定一个R(所谓的... 给我们100张纸,其中20张写着10r,10张-5r,70张-r,把他们装在一个盒子里,等下对其进行随机抽取,现在我们要进行40次试验,每次实验前你都要确定一个R(所谓的R值就是上面提到的小r)值输入,40次以后看看我们的本金是多少。然后现在要C语言编程实现这件事。。。比如你输入的R是10,你抽到了10r,那么你的本金就是100. 抽到-5r就是本金损失-50。抽40次之后40次以后我们的本金会是多少。火速求救。晚上十二点写出之前有效。十一点之前提供完整的c语言程序悬赏再翻倍。。。。 展开
 我来答
百度网友83cdc1c
2013-08-07 · TA获得超过5792个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:916万
展开全部
#include <stdio.h>
#include <time.h>
int main()
{
    int s,r;
    int m[100]={0};
    int i,j;
    for(i=0;i<20;i++)
    {
        j=rand()%100;
        if(m[j]==0)
            m[j]=10;
        else
            i--;
    }
    for(i=0;i<10;i++)
    {
        j=rand()%100;
        if(m[j]==0)
            m[j]=-5;
        else
            i--;
    }
    for(i=0;i<70;i++)
    {
        j=rand()%100;
        if(m[j]==0)
            m[j]=-1;
        else
            i--;
    }
    s=0;
    srand((int)time(0));
    for(i=0;i<40;i++)
    {
        printf("\n第%d次,输入R:",i+1);
        scanf("%d", &r);
        j=rand()%100;
        s+=m[j]*r;
        printf("抽到%dr,%s%d,当前本金:%d\n", m[j], m[j]>0?"获得":"损失", m[j]*r, s);
    }
    printf("最终本金:%d", s);
}

前面三个循环主要是随机初始化倍率数组。

更多追问追答
追问
你有运行过吗?可以稍微讲一下吗?可以的话双倍
追答
我运行过了。

主要就是先初始化100个倍率数组元素,然后在后面一个40次的循环里,每次都输入一个R,从100个倍率里抽取一个(用随机数的方式),然后用倍率乘以R,就得到这一次是赚还是赔,把结果汇总到变量s上就可以了。
yuwenchenglo
2013-08-07 · 超过27用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:78.5万
展开全部

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void main ()

{

int a[100];

int i=40,j;

int R,sum;

for(i=0;i<100;i++)

{

if(i<20) a[i]=10;

else if(i<30) a[i]=-5;

else a[i]=-1;

}

srand((unsigned)time(NULL));

loop: 

printf("请输入你压的R:");

scanf("%d",&R);

sum=0;

for(i=0;i<40;i++)

{ j=rand()%100;

printf("第%d次是:%d\n",i+1,a[j]);

sum+=a[j];

}

printf("40次后你还有多少R:%d\n",sum*R);

printf("任意键继续.....\n");

getch();

goto loop;

}

不知道还行 不行联系我 继续帮你修改
更多追问追答
追问
可以稍微讲一下吗?因为是帮别人问的。。我自己有点菜。只是稍微懂
追答
for(i=0;i<100;i++)
{
if(i<20) a[i]=10;
else if(i<30) a[i]=-5;
else a[i]=-1;
}//这边构建了一个a[100]的数组 前20个数是10然后10个-5 70个-1
srand((unsigned)time(NULL));//设定随机数的种子,为调用rand准备
for(i=0;i<40;i++)
{ j=rand()%100;
printf("第%d次是:%d\n",i+1,a[j]);
sum+=a[j];

}//40次循环,每次先j=rand()%100;得到一个0-99的数,及对应数组中的数,将40次的值加一起
printf("40次后你还有多少R:%d\n",sum*R);//最后乘以本金 得到最后的本金
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oachao7
2013-08-07 · 超过30用户采纳过TA的回答
知道答主
回答量:192
采纳率:0%
帮助的人:93.1万
展开全部
这个真难 我语文不好 不好帮你
追问
是没有看题目的要求吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式