概述
导航:网站首页 >
C语言求教 一个算概率的问题,c语言概率计算
C语言求教 一个算概率的问题,c语言概率计算
匿名网友:
----------------------int f6,ok;/--------------------------------放代码:/:150/:%d/%dgetch()!cardi) return,i;-------------------------void put(int nxi)//ok++;}//i #include /递归 } }//-------------------------运行结果;24361;n";=3;i++){ fnxi = i;put(nxi+1);/概率为,ok,total);void judge(){ int card4={0};char c = ',我想你应该会,我就不写了。
/呵呵.73% 当然,你还可以加一个约分函数使得结果为最简分数;往第nxi袋方便面袋里放卡片 { if(nxi == 6) { total++;judge();%' }///--------------------------------递归的代码我已经写好了。
通过适当修改相关参数把方便面袋数量和卡片种类设置为变量提示用户输入,可以计算不同方便面袋数和卡片种类数的中奖概率。
如果我没记错,这是一个高考数学题,你应该是个高中生吧。
可以用深度优先搜索递归回溯,这样比较简单;printf"百分数: %;/--------------------------------#include
匿名网友:
这道题的意思是找一个组合,使钢材得到最大利用,也就是说剩余最小,最小即为0换个角度就是说这个组合所需钢材的长度和 + 这个组合内的订单数-1*2 = 总长度。
一个订单只生产一次当然如果没有正好等于总长度的组合,再找最接近的。
匿名网友:
if(getch()=='y')printf"请继续输入:n";else if(getch()=='n') break;第一个getch)会等待你输入一个字符,如果是'y'就继续,如果是其他就到else里,此时程序会等你输入第二个getch)字符,如果是'n'就退出,否则就继续循环。
应该这样改:#include<stdio.h>#include <conio.h>void main(){int i,a,b,c,d,e;char cTemp;printf"请输入一个五位数i: ";while(1){scanf("%d",&i);if(i>9999 && i<100000){a=i/10000;b=i/1000%10;c=i/100%10;d=i/10%10;e=i%10;printf" 万 千 百 十 个n";printf(" %d %d %d %d %dn", a,b,c,d,e);}do{printf"是否继续?y/nn";cTemp = getch();if(cTemp=='y'){printf"请继续输入:n";break;}else{if(cTemp=='n'){return;}}}while(1);}return;}
匿名网友:
#include<stdio.h>#include<math.h>int main(void){double a,b,c;double x1,x2,x3,y1,y2,y3;double cosA,sinA,square;printf"请输入第一个点n";scanf("%lf,%lf",&x1,&y1);printf"请输入第二个点n";scanf("%lf,%lf",&x2,&y2);printf"请输入第三个点n";scanf("%lf,%lf",&x3,&y3);/*注意: 对于double类型来说 当用scanf给double类型赋值时转换说明符应该是%lf, 或者%Lf而不是%f, 而是用printf给double类型输出时, 则可以是用%f作为转换说明符, 不过因此会缺失精度.也就是类型反向提升 类型降级所以为了准确度考虑, 建议是用%lf*/a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));c=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));cosA = (b*b+c*c-a*a)/(2*b*c);sinA = sqrt(1-cosA*cosA);square = b*c*sinA/2;/* 此处三角形面积公式为S = b*c*sinA/2 *//* 而不是a*b*sinA/2, 这点是值得注意的 */printf"三角形的面积为:%.2Lfn", square;/* square的类型是double, 因此使用%lf输出 */return 0;}/* 程序测试, 粗体代表输入 */请输入第一个点0,0请输入第二个点3,0请输入第三个点3,4三角形的面积为:6.00
匿名网友:
不能像你这样去计算,思路有点问题,特别是你那个条件也不对,下面是我写的一个代码你参考一下#include <stdio.h>void main(){int a,b,sum=0;printf("please input a number: n");scanf("%d",&a);do{b=a%10;sum=10*sum+b;a=(a-b)/10;}while(a!=0);printf"输入数字的倒序数字为%dn",sum;}我的思路是用输入的数字除以10求余数,将这个余数作为我们即将输出的数字的最高位,如果是3位数,那么它自然就是百位了,将数字存储到sum中,中间呢a需要一直减去这个余数并且除以10,sum也需要一直乘以10再加上余数。
一直循环,将它们全部倒置,循环条件就是a不等于0,当a=0 的时候就是循环结束了,然后输出这个数字当然你的那个方法的话,其实也是可以的,不过有局限性,我给你修改一下之后你参考一下#include <stdio.h>void main(){int a,b,c,d,e;printf("please input a number:n");scanf("%d",&d);a=d/100;b=(d%100)/10;c=d%10;e=100*c+10*b+a;printf("%dn",e);}这段代码也只能完成3位数的倒置,而我写的那个呢,可以完成任意的,这就是局限性,所以不提倡你那样的写法
匿名网友:
咱们先看main函数的处理: pa=&a; //pa指向a的地址,所以*pa的值为2.5 pb=&b; //pb指向b的地址,所以*pb的值为9.0 调用sub(b-a,pa,pa),由于b-a=9.0-2.5=6.5,pa指向a的地址,pb指向b的地址, 所以void sub(float x,float *y,float *z) 中: x=6.5 float *y: y指向pa指向的地址,也就是y指向a的地址,*y=2.5 float *z: z指向pa指向的地址,也就是z指向a的地址,*z=2.5 再看sub函数中的处理: *y=*y-1.0=2.5-1.0=1.5 //由于y指向a的地址,所以对于*y的赋值,实际上就是对于a的地址的赋值,也就是对于a进行赋值,所以实际上就是将a赋值为1.5 注意一下:由于y和z都指向a的地址,所以*y被赋值为1.5以后,a的值变为1.5,也就意味着*z也就是1.5了,所以下面的*z应该是带入1.5进行计算 *z=*z+x=1.5+6.5=8.0 //由于z指向a的地址,所以对于*z的赋值,实际上就是对于a的地址的赋值,也就是对于a进行赋值,所以实际上就是将a赋值为8.0 所以,最后a的值为8
匿名网友:
有2个方法class 或者struct我想你应该说的是C++ 因为 根据C99 C没有Struct的。
纯正的C只有Class ,而2个本质上没有太多区别。
只是 public 和 private 变量的定义有区别如果你只的只是 定义一个结构体class car{public: 变量private:变量};就好了说了这么详细了,就不写具体东西了,变量自己定义就可以了,作业,毕竟 100% 别人做的不太好,老外更是反感这样的。
问题推荐
最后
以上就是幸福高跟鞋为你收集整理的用c语言代码算出抽奖概率大小,C语言求教 一个算概率的问题,c语言概率计算的全部内容,希望文章能够帮你解决用c语言代码算出抽奖概率大小,C语言求教 一个算概率的问题,c语言概率计算所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复