哪位大哥能帮我编这几道C语言的题目啊?

(1):将4个红球,3个白球与3个黄球排成一排,共有多少种排法?(2):已知N个正整数满足K1+K2+...+Kn=M。求一组最佳的分解,使得K1*K2*....*Kn为... (1):将4个红球,3个白球与3个黄球排成一排,共有多少种排法?
(2):已知 N 个正整数满足 K1+K2+...+Kn=M。求一组最佳的分解,使得
K1*K2*....*Kn 为最大。
例如:N=2时,给定 K1+K2=6,当 K1=3,K2=3 时,K1*K2=9 为最大
(3):(算术表达式求值) 输入一个由数字、+,-,*,/ 及括号组成的算术表达式,
求其值。
展开
 我来答
foxcer
2007-05-22 · 超过29用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:0
展开全部
一题:
#include<stdio.h>
void main()
{
int i,j,x,y,a,b,c,sum=0;
for(i=1;i<=7;i++)
for(j=i+1;j<=8;j++)
for(x=j+1;x<=9;x++)
for(y=x+1;y<=10;y++)
for(a=1;a<=8;a++)
if(a!=i&&a!=j&&a!=x&&a!=y)
{
for(b=a+1;b<=9;b++)
if(b!=i&&b!=j&&b!=x&&b!=y)
{
for(c=b+1;c<=10;c++)
if(c!=i&&c!=j&&c!=x&&c!=y)
sum++;
}
}
printf("%d\n",sum);
}
二题:
定义的M的值可以改动
改动后不影响结果。
但N的值一但改动代码也
必将改动,如果你想改
动N的值你可以根据以下
思路自己写出来代码来
#define M 31
#define N 5
#include<stdio.h>
void main()
{
long a[N]; long sum=0;
int i,j,p,q;
for(i=1;i<=M-N+1;i++)
{
a[0]=i;
for(j=1;j<=M-i-N+2;j++)
{a[1]=j;
for(p=1;p<=M-i-j-N+3;p++)
{a[2]=p;
for(q=1;q<=M-i-j-p-N+4;q++)
{a[3]=q;
a[4]=M-i-j-p-q;
if(a[0]*a[1]*a[2]*a[3]*a[4]>sum)
sum=a[0]*a[1]*a[2]*a[3]*a[4];
}
}
}
}
printf("%ld\n",sum);
}
三题:
这题我只写了没有括号情况
得出的结果比如可以算出
2*87-2+5/2类似这中表达式的
值,要加上括号的话也很不难
时间关系,我没写你可以根据
这思路自己修改就可以了
思路:
先用for语句扫描有无括号字符
有的话把括号里面的字符通过
一些简单的函数复制到一个新建
的字符数组中然后调用我写给你
的函数求出这个值,把这个值转换
成字符型,联合括号外的字符覆盖
原字符数组中的字符,在调用我
写给你的函数求出值。
我用的是void mian()
你用的时候把函数该成float型
返回一个值然后按我说的改就可
以完成了以下是代码,希望对你
有所帮助:
#include<stdio.h>
void main()
{
int i,o,j=0,m=0,z=-1; char str[30]; int number=0;
float d[31]={0};
begin:
gets(str);
for(i=0;str[i];i++)
if(str[i]<40||str[i]>57||str[i]==46||str[i]==44)
{printf("bad input agian\n");goto begin;}
for(i=0;str[i];i++)
{if(str[i]<48||str[i]>57)
number=0;
else if(number==0)
{number=1;j++;}
if(number==1)
{d[j-1]=d[j-1]*10+str[i]-48;}
m=j;
}
o=m;
j=0;
for(i=0;str[i];i++)
if(str[i]==42||str[i]==47||str[i]==43||str[i]==45)
str[j++]=str[i];
str[j]='\0';
for(i=0;str[i];i++)
{
if(str[i]==42)
{
z++;
d[i-z]=d[i-z]*d[i+1-z];
for(j=i;j<o-1;j++) d[j+1-z]=d[j+2-z];
m--;
}
if(str[i]==47)
{
z++;
d[i-z]=d[i-z]/d[i+1-z];
for(j=i;j<o-1;j++) d[j+1-z]=d[j+2-z];
m--;
}
}
j=0;z=-1;o=m;
for(i=0;str[i];i++)
{
if(str[i]==43||str[i]==45)
str[j++]=str[i];
}
str[j]='\0';
for(i=0;str[i];i++)
{
if(str[i]==43)
{z++;
d[i-z]=d[i-z]+d[i+1-z];
for(j=i;j<o-1;j++) d[j+1-z]=d[j+2-z];
m--;
}
if(str[i]==45)
{z++;
d[i-z]=d[i-z]-d[i+1-z];
for(j=i;j<o-1;j++) d[j+1-z]=d[j+2-z];
m--;
}
}
printf("%5.2f\n",d[0]);
}
bornnow
2007-05-22 · TA获得超过224个赞
知道小有建树答主
回答量:621
采纳率:0%
帮助的人:539万
展开全部
这玩意儿你自己写吧就这点儿你也太懒了吧!!
花不了多少时间的我在上班没有时间老板看到了不好!!
并且细则你没有说出来1!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
珈蓝凝阳Q
2007-05-22 · TA获得超过187个赞
知道小有建树答主
回答量:554
采纳率:0%
帮助的人:232万
展开全部
你数学好不好啊??好就简单,不好就男了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4dc7f90
2007-05-22 · TA获得超过1.6万个赞
知道小有建树答主
回答量:1702
采纳率:0%
帮助的人:760万
展开全部
排列 组合 先看看好吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式