本文目录一览:
c语言计算:编程
#include<stdio.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==100 && k>0)
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)
cout << s[0] << '\n';
for (int i=0;i<=step;++i)
for (int j=i+1;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];
cin >> s[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(int i=0; i<*l; i++)
for(int 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 0;
}
if(m == '+')
for(i=0; i<l1; i++)
for(j=0; j<r1; j++)
rm[i][j] = m1[i][j] + m2[i][j];
else
for(i=0; i<l1; i++)
for(j=0; j<r1; 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 0;
}
for(i=0; i<l1; i++)
for(j=0; j<r2; j++)
{
m[i][j] = 0;
for(k=0; k<r1; 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; i<l; i++)
{
for(j=0; j<r; 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;
}
printf("运算:%c,计算结果为:\n", mark[0]);
output(d, l1, r2);
system("pause");
}
两个运算矩阵可以是大小不同的,输出结果由被乘数矩阵的行和乘数矩阵的列决定,你要求的输出格式比较烦,没时间不够啦!有时间再玩吧。