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

来源:百度知道 编辑:UC知道 时间:2024/06/22 03:24:33
(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):(算术表达式求值) 输入一个由数字、+,-,*,/ 及括号组成的算术表达式,
求其值。

一题:
#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];