
求救,有一个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语言程序悬赏再翻倍。。。。
展开
3个回答
展开全部
#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上就可以了。
展开全部
#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);//最后乘以本金 得到最后的本金
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个真难 我语文不好 不好帮你
追问
是没有看题目的要求吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询