把c++代码转成c代码
发布网友
发布时间:2022-04-25 13:03
我来回答
共6个回答
热心网友
时间:2022-04-08 12:52
#include <stdio.h>//#include <iostream>
//using namespace std;
#include <math.h>//#include <cmath>
int main()
{
double e=0,f=0,h=0,g=0;//double e(0),f(0),h(0),g(0);
double A[3][4];
int j=0,k=0,l=0,jj=0,jjj=0,kk=0,kkk=0,m=0,cc=0,s=0,ggg;
double C[4],D[3],x1,x2,x3;
double ff,p;
for(j=0;j<=2;j++)//for(int j=0;j<=2;j++)在C语言中不能在循环中定义局部变量必须在前面定义
{
printf("请逐次输入第%d个方程未知数X1,X2,X3的系数和常数:\n",j+1);
//cout<<"请逐次输入第"<<(j+1)<<"个方程未知数X1,X2,X3的系数和常数:"<<endl;
scanf("%lf%lf%lf%lf",&A[j][0],&A[j][1],&A[j][2],&A[j][3]);
//cin>>A[j][0]>>A[j][1]>>A[j][2]>>A[j][3];
}
printf("这个方程组是:\n");//cout<<"这个方程组是:\n"<<endl;
for(k=0;k<=2;k++)
{
printf("%.2lf×X1+%.2lf×X2+%.2lf×X3=%.2lf\n",A[k][0],A[k][1],A[k][2],A[k][3]);
//只保留了小数点后两位数你也可以再增加
//cout<<A[k][0]<<"×X1+"<<A[k][1]<<"×X2+"<<A[k][2]<<"×X3="<<A[k][3]<<endl;
}
for(l=0;l<=2;l++)
{
e=fabs(A[l][0]);
if(e>=f)
{f=e;kk=l;}
}
if(f==0)
{
printf("false\n");//cout<<"false"<<endl;
return(0);
}
else
{
for(jj=0;jj<=3;jj++)
{
g=A[0][jj];A[0][jj]=A[kk][jj];A[kk][jj]=g;
}
//double C[4];在C语言中只能在最前面定义变量
for(jjj=0;jjj<=3;jjj++)
{
C[jjj]=A[0][jjj]/A[0][0];
}
for(kk=1;kk<=2;kk++)
{
for( kkk=3;kkk>=0;kkk--)
{
A[kk][kkk]=A[kk][kkk]-C[kkk]*A[kk][0];
}
}
//double ff,p;在C语言中只能在最前面定义变量
//int ggg;在C语言中只能在最前面定义变量
if(fabs(A[1][1])>fabs(A[2][1]))
{ggg=1;ff=fabs(A[1][1]);}
else
{ggg=2;ff=fabs(A[2][1]);}
if(ff==0)
{
printf("false\n");//cout<<"false"<<endl;
return(0);
}
else
{
for(m=0;m<=3;m++)
{
p=A[1][m];A[1][m]=A[ggg][m];A[ggg][m]=p;
}
//double D[3];在C语言中只能在最前面定义变量
for(cc=1;cc<=3;cc++)
{
D[cc]=A[1][cc]/A[1][1];
}
for(s=3;s>=1;s--)
{
A[2][s]=A[2][s]-D[s]*A[2][1];
}
}
}
//double x1,x2,x3;在C语言中只能在最前面定义变量
x3=A[2][3]/A[2][2];
x2=(A[1][3]-A[1][2]*x3)/A[1][1];
x1=(A[0][3]-A[0][1]*x2-A[0][2]*x3)/A[0][0];
printf("这个方程组的解为:(%.2lf,%.2lf,%.2lf)\n",x1,x2,x3);
//cout<<"这个方程组的解为:("<<x1<<","<<x2<<","<<x3<<")"<<endl;
return 0;
}
//VC6.0运行没问题
热心网友
时间:2022-04-08 14:10
C++和C的语法其实差不多的,要改动的一般只有预编译部分和输入输出部分
比如说
#include <iostream>
#include <cmath>
using namespace std;
改成
#include <stdio.h>
#include <math.h>
cin用scanf替换,cout用printf替换即可
热心网友
时间:2022-04-08 15:44
#include
"stdio.h"#include
"string.h"#include
"stdlib.h"struct
CityHouse{
char
cityName[50];
int
houseSum;
int
familySum;
double
housePar;};
void
init(char
a[],
int
h,
int
f,struct
CityHouse
&num){
strcpy(num.cityName,a);
num.houseSum
=
h;
num.familySum
=
f;
num.housePar
=
h
/
f;}
int
main
(int
agrc,
char
**agrv
){
int
m,
n,
i,
j;
struct
CityHouse
cityArray[10];
struct
CityHouse
temp;
init("北京",10000,3000,cityArray[0]);
init("上海",20000,6000,cityArray[1]);
init("天津",30000,7000,cityArray[2]);
init("深圳",40000,8000,cityArray[3]);
init("广州",14000,4000,cityArray[4]);
init("武汉",13000,8000,cityArray[5]);
init("成都",10400,9000,cityArray[6]);
init("杭州",13400,2000,cityArray[7]);
init("沈阳",10200,4000,cityArray[8]);
init("长沙",17000,2000,cityArray[9]);
for(m
=
0;
m
<
10;
m++)
for(n
=
0;
n
<
9;
n++)
if(cityArray[n].housePar
>=
cityArray[n+1].housePar)
{
temp
=
cityArray[n];
cityArray[n]
=
cityArray[n+1];
cityArray[n+1]
=
temp;
}
for(i
=
0;
i
<
10;
i++)
{
printf("%s
%d
%d
%.3lf\n",
cityArray[i].cityName,
cityArray[i].houseSum,
cityArray[i].familySum,
cityArray[i].housePar);
}
return
0;}
热心网友
时间:2022-04-08 17:36
不行,C++是面像对象的,
要是真的转的话,那已经不是转了,相当于重新写一个C语言程序,实现上面C++程序的功能而已~~~
热心网友
时间:2022-04-08 19:44
???不是说C代码能在C++上通用的吗?
热心网友
时间:2022-04-08 22:08
真不想做 哎····人变懒了