本文目录一览:
c语言计算:编程
#includestdio.h
void main()
{
int i,j,k,count=1;
for(i=0;i=12;i++)
for(j=0;j=33;j++)
{ k=100-i*8-j*3;
if(i*8+j*3+k==100k0)
printf("第%d种:大货车:%d,重型车:%d,微型车:%d\n",count++,i,j,k);
}
}
C语言 计算24是流行的扑克游戏。 方法,思路也行。
我的代码不长:
#include cmath
#include iostream
#include sstream
#include string
using namespace std;
double a[4]; //操作数
string s[4]; //四个数
void DFS(int step)
{
if (!step)
if (fabs(a[0]-24) 1E-5)
couts[0]'\n';
for (int i=0;i=step;++i)
for (int j=i;++j=step;)
{
double p=a[i],q=a[j];
string tp=s[i],tq=s[j];
a[j]=a[step];s[j]=s[step];
a[i]=p+q;s[i]='('+tp+'+'+tq+')';DFS(step-1);
a[i]=p-q;s[i]='('+tp+'-'+tq+')';DFS(step-1);
a[i]=q-p;s[i]='('+tq+'-'+tp+')';DFS(step-1);
a[i]=p*q;s[i]='('+tp+'*'+tq+')';DFS(step-1);
if (fabs(q)=1E-5)
a[i]=p/q;s[i]='('+tp+'/'+tq+')';DFS(step-1);
if (fabs(p) = 1E-5)
a[i]=q/p;s[i]='('+tq+'/'+tp+')';DFS(step-1);
a[i]=p;a[j]=q;
s[i]=tp;s[j]=tq;
}
}
int main()
{
char str[2];
cins[0]s[1]s[2]s[3];
a[0]=atof(s[0].c_str());
a[1]=atof(s[1].c_str());
a[2]=atof(s[2].c_str());
a[3]=atof(s[3].c_str());
DFS(3);
}
经测试可以运行。
C语言程序设计方案!!二维数组应用 矩阵算法 求高人
#include
stdio.h
void
input_data(int
*l,int
*r,int
data[100][100])
{
int
i,j,k;
printf("输入矩阵行数:");
scanf("%d",l);
printf("输入矩阵列数:");
scanf("%d",r);
printf("按行输入数据,数据间用空格间隔:\n");
for(i=0;i*l;i++)
for(j=0;j*r;j++)
scanf("%d",data[i][j]);
}
int
add_subtra(int
m1[100][100],int
l1,int
r1,
int
m2[100][100],int
l2,int
r2,char
m,int
rm[100][100])
{
int
i,j;
if(l1!=l2
||
r1!=r2)
{
printf("矩阵数据错误1.\n");
return;
}
if(m=='+')
for(i=0;il1;i++)
for(j=0;jr1;j++)
rm[i][j]=m1[i][j]+m2[i][j];
else
for(i=0;il1;i++)
for(j=0;jr1;j++)
rm[i][j]=m1[i][j]-m2[i][j];
}
int
mul(int
m1[100][100],int
l1,int
r1,
int
m2[100][100],int
l2,int
r2,int
m[100][100])
{
int
i,j,k;
if(l1!=r2
)
{
printf("矩阵数据错误2.\n");
return;
}
for(i=0;il1;i++)
for(j=0;jr2;j++)
{
m[i][j]=0;
for(k=0;kr1;k++)
m[i][j]+=m1[i][k]*m2[k][j];
}
}
int
output(int
m[100][100],int
l,int
r)
{
int
i,j;
for(i=0;il;i++)
{
for(j=0;jr;j++)
printf("%3d
",m[i][j]);
printf("\n");
}
}
int
main()
{
int
d1[100][100],d2[100][100],d[100][100];
int
l1,r1,l2,r2;
int
i,j,k;
char
mark[2];
printf("输入第一个矩阵数据:\n");
input_data(l1,r1,d1);
printf("输入的第一个矩阵:\n");
output(d1,l1,r1);
printf("输入第二个矩阵数据:\n");
input_data(l2,r2,d2);
printf("输入的第二个矩阵:\n");
output(d2,l2,r2);
printf("指定运算符(+/-/*):");
scanf("%s",mark);
while(mark[0]!='+'
mark[0]!='-'
mark[0]!='*')
{
printf("符号错误请重新输入(+/-/*):");
scanf("%s",mark);
}
switch(mark[0])
{
case
'+':
case
'-':
add_subtra(d1,l1,r1,d2,l2,r2,mark[0],d);
break;
case
'*':
mul(d1,l1,r1,d2,l2,r2,d);
break;
}
//output(d1,l1,r1);
//output(d2,l2,r2);
printf("运算:%c,计算结果为:\n",mark[0]);
output(d,l1,r2);
system("pause");
}
两个运算矩阵可以是大小不同的,
输出结果由被乘数矩阵的行和乘数矩阵的列决定,
你要求的输出格式比较烦,没时间不够啦!有时间再玩吧。