一题:
#include
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
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
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
}
if(str[i]==47)
{
z++;
d[i-z]=d[i-z]/d[i+1-z];
for(j=i;j
}
}
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
}
if(str[i]==45)
{z++;
d[i-z]=d[i-z]-d[i+1-z];
for(j=i;j
}
}
printf("%5.2f\n",d[0]);
}
这玩意儿你自己写吧就这点儿你也太懒了吧!!
花不了多少时间的我在上班没有时间老板看到了不好!!
并且细则你没有说出来1!
你数学好不好啊??好就简单,不好就男了
排列 组合 先看看好吗