? 發問時間: 電腦與網際網路程式設計 · 1 0 年前

急!!請C程式高手幫我把C++翻譯成C語言!!

#include <stdio.h>

#include <stdlib.h>

#include <iostream>

using namespace std;

int main()

{

float n[3][4]={0.},m[3]={0.},d[3]={0.},x,y,z;

int a,b,c;

cout<<"請依照"<<"\n"<<"A1x+B1y+C1z=D1\n"<<"A2x+B2y+C2z=D2\n"<<"A3x+B3y+C3z=D3\n"<<"依次輸入A1,B1,C1,D1,A2,B2....."<<"\n";

for(a=0;a<3;a++)

{

for(b=0;b<4;b++)

cin>>n[a][b];

}

cout<<n[0][0]<<"x+"<<n[0][1]<<"y+"<<n[0][2]<<"z="<<n[0][3]<<"\n";

cout<<n[1][0]<<"x+"<<n[1][1]<<"y+"<<n[1][2]<<"z="<<n[1][3]<<"\n";

cout<<n[2][0]<<"x+"<<n[2][1]<<"y+"<<n[2][2]<<"z="<<n[2][3]<<"\n";

a=n[0][0]*(n[1][1]*n[2][2]-n[1][2]*n[2][1])

-n[0][1]*(n[1][0]*n[2][2]-n[1][2]*n[2][0])

+n[0][2]*(n[1][0]*n[2][1]-n[1][1]*n[2][0]);

if (a!=0)

{

for(b=0;b<=2;b++)

{

for(c=0;c<=2;c++)

{

d[c]=n[c][b];

n[c][b]=n[c][3];

}

m[b]=n[0][0]*(n[1][1]*n[2][2]-n[1][2]*n[2][1])

-n[0][1]*(n[1][0]*n[2][2]-n[1][2]*n[2][0])

+n[0][2]*(n[1][0]*n[2][1]-n[1][1]*n[2][0]);

for(c=0;c<=2;c++)

{ n[c][b]=d[c]; }

}

x=m[0]/a;

y=m[1]/a;

z=m[2]/a;

cout<<"x="<<x<<"\n";

cout<<"y="<<y<<"\n";

cout<<"z="<<z<<"\n";

}

else cout<<"此方程式非唯一解或無解"<<"\n";

cout<<"over"<<" \n";

system("PAUSE");

return 0;

}

請把全部翻譯成C語言!!

並請順便講解一下!!麻煩!!

1 個解答

評分
  • 1 0 年前
    最佳解答

    把這程式改成C:

    cin>>陣列 ==> scanf("資料型態",&陣列);

    cout<<"輸出內容"<<輸出值 , 改成printf("輸出內容+資料型態",輸出值);

    其他幾乎沒什麼改變

    頂多用不到的using namespace std;刪掉

    #include <stdio.h>

    #include <stdlib.h>

    void main()

    {

    float n[3][4]={0.},m[3]={0.},d[3]={0.},x,y,z;

    int a,b,c;

    printf("請依照\nA1x+B1y+C1z=D1\nA2x+B2y+C2z=D2\nA3x+B3y+C3z=D3\n依次輸入A1,B1,C1,D1,A2,B2.....\n");

    for(a=0;a<3;a++)

    {

    for(b=0;b<4;b++)

    scanf("%f",&n[a][b]);

    }

    printf("%.0fx+%.0fy+%.0fz=%.0f\n",n[0][0],n[0][1],n[0][2],n[0][3]);

    printf("%.0fx+%.0fy+%.0fz=%.0f\n",n[1][0],n[1][1],n[1][2],n[1][3]);

    printf("%.0fx+%.0fy+%.0fz=%.0f\n",n[2][0],n[2][1],n[2][2],n[2][3]);

    a=n[0][0]*(n[1][1]*n[2][2]-n[1][2]*n[2][1])

    -n[0][1]*(n[1][0]*n[2][2]-n[1][2]*n[2][0])

    +n[0][2]*(n[1][0]*n[2][1]-n[1][1]*n[2][0]);

    if (a!=0)

    {

    for(b=0;b<=2;b++)

    {

    for(c=0;c<=2;c++)

    {

    d[c]=n[c][b];

    n[c][b]=n[c][3];

    }

    m[b]=n[0][0]*(n[1][1]*n[2][2]-n[1][2]*n[2][1])

    -n[0][1]*(n[1][0]*n[2][2]-n[1][2]*n[2][0])

    +n[0][2]*(n[1][0]*n[2][1]-n[1][1]*n[2][0]);

    for(c=0;c<=2;c++)

    { n[c][b]=d[c]; }

    }

    x=m[0]/a;

    y=m[1]/a;

    z=m[2]/a;

    printf("x=%f\n",x);

    printf("y=%f\n",y);

    printf("z=%f\n",z);

    }

    else

    printf("此方程式非唯一解或無解\n");

    printf("over\n");

    system("PAUSE");

    }

    參考資料: 自己
還有問題?馬上發問,尋求解答。