本文目錄一覽:
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”);
}
兩個運算矩陣可以是大小不同的,
輸出結果由被乘數矩陣的行和乘數矩陣的列決定,
你要求的輸出格式比較煩,沒時間不夠啦!有時間再玩吧。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/200998.html