C語言中的魔術矩陣問題,尋找解決方案

發布 科技 2024-08-09
14個回答
  1. 匿名使用者2024-01-31

    程式有問題,在初始化矩陣的時候,有一些問題,因為是二維矩陣,所以需要用兩個迴圈來控制行和列... 具體步驟如下。

    #include

    void main()

    int i,j,t,a[5][5];

    t = 1;

    for(i=0;i<5;i++)

    for(j=0;j<5;j++)

    a[i][j] = t++;

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

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

    printf("%5d",a[i][j]);

    printf("");

  2. 匿名使用者2024-01-30

    按照 Robe 的方法填寫奇階魔方需要確定該位置是否已經填寫,而您的程式中沒有這樣的部分。

    這是修改後的程式:

    #include

    void main()

    int i, j, t, a[5][5];

    int rightup_i, rightup_j;

    所有數字都需要歸零,以確定是否將數字 * 放在 (i=0; i<5; i++)

    for (j=0; j<5; j++)

    a[i][j] = 0;

    i = 0; j = 5/2;

    for(t=1;t<=5*5;t++)

    a[i][j]=t;

    計算右上方塊的坐標 *

    rightup_i = i - 1;

    rightup_j = j + 1;

    if(rightup_i<0)

    rightup_i=4;

    if(rightup_j>4)

    rightup_j=0;

    如果右上角沒有數字,則為下次填寫的位置 * if(a[rightup i][rightup j] == 0)i = rightup i;

    j = rightup_j;

    else * 如果已經填好了,下次會填到下乙個框 * i++; if(i > 4)

    i = 0;

    for(i=0;i<5;i++)

    for(j=0;j<5;j++)

    printf("%5d",a[i][j]);

    printf("");要換行執行結果,請執行以下操作:

  3. 匿名使用者2024-01-29

    #include

    #include

    #define n 5

    int main(void)

    int i, j, key;

    int square[n+1][n+1] = ;

    i = 0;

    j = (n+1) / 2;

    for(key = 1; key <= n*n; key++)if((key % n) == 1)

    i++;else

    i--;j++;

    if(i == 0)

    i = n;

    if(j > n)

    j = 1;

    square[i][j] = key; }for(i = 1; i <= n; i++)for(j = 1; j <= n; j++)printf("%2d ", square[i][j]);

    return 0;

    魔方的填寫方法最簡單,用奇數,把第乙個數字放在第一行的第一列**,然後填到右邊(左),如果右邊(左)有數字,則填下,如下圖所示:

  4. 匿名使用者2024-01-28

    這個程式至少有兩個問題(可能還有其他錯誤,我會再看一遍),第乙個if(m=1)應該是m==1,行數是1,直接返回。

    第二個問題,迴圈巢狀不正確,以下正確**,注意支撐位置。

    for (i = 0; i

  5. 匿名使用者2024-01-27

    我不明白。 但是if(m=1)顯然應該是if(m==1)。

  6. 匿名使用者2024-01-26

    迴圈 A34 的第乙個雙精度被替換為 AIJ

  7. 匿名使用者2024-01-25

    帶中斷寫入,設定優先順序。

  8. 匿名使用者2024-01-24

    你寫的 fun 函式有乙個返回值,你只需給函式新增 return,呼叫它的時候還需要對返回值進行處理。

  9. 匿名使用者2024-01-23

    我用乙個二維陣列儲存了一下,發給房東參考。

    #include

    #define max 10

    void fun(int a[max],int x )fflush(stdin);

    int main()

    elsefor( i = 0 ; i < num ;i++)reutn 0;}

  10. 匿名使用者2024-01-22

    執行 cpucash 的演算法。 我發現還是有點問題。 在上面更改了它。 解決了點邏輯問題。 執行結果正確。

    #include

    int main(void)

    必須初始化最終結果。

    int i,n;

    char op='+';

    scanf("%d",&n);

    while(op!='#'這個地方變了};for(i=1;i<=n*n;i++) 輸出。

    return 0;}

  11. 匿名使用者2024-01-21

    matrix,那麼就需要用乙個二維陣列,你可以用乙個一位元陣列,但是你需要確定如何把它拆分成乙個二維陣列。

    n*n=10*10=100,你可以定義乙個100個元素的陣列,但是對於這個問題,我估計你需要定義乙個二維陣列,呵呵,int a[100],sum[100]=; 必須初始化最終結果。

    int i,n;

    char op;

    scanf("%",&n);

    至少做一次,最好是 while(op!) 和 do--while='#

    for(i=0;i

  12. 匿名使用者2024-01-20

    i != n 顯然是錯誤的,應該與 i 一起使用!= n-1

    j !=n 類似。

    當然,要更改為 &&,這取決於您的需要,因為“除了子對角線的最後一列和最後一行”仍然模稜兩可)。

  13. 匿名使用者2024-01-19

    #include

    using namespace std;

    #define type int

    #define num 3

    type matrix1[num][num], matrix2[num][num];

    void fun()

    int i,j;

    for(i = 0; i < num; i ++for(j = 0; j <= num; j++)matrix2[j][i] = matrix1[i][j];

    void init()

    int i,j;

    for(i = 0; i < num; i ++for(j = 0; j < num; j++)cout <<"請進入部分"

    void output(int matrix[num])int i,j;

    for(i = 0; i < num; i ++for(j = 0; j < num; j++)cout

    求 3*3 矩陣的逆矩陣。

    init();

    cout <<"matrix1 是:"

    fun();

    cout <<"matrix2 是:"

  14. 匿名使用者2024-01-18

    我真的不明白你這個問題是什麼意思,你能解釋得更清楚嗎?

相關回答
8個回答2024-08-09

將 struct、student 和 internal 元素定義為 age、num 陣列。 >>>More

3個回答2024-08-09

總結。 吻。 <>

<>執行的結果如下: a c e g i k m o q s 程式的邏輯如下:外迴圈變數 i 表示圖的行數,4 個週期後即可輸出完整的圖; 內迴圈變數 j 表示每行輸出的字元數,其初始值為 0,每輸出個字元 j 加 1; 變數 k 表示每行第乙個字元的 ASCII 碼值與“a”的差值,初始值為 1,每個字元輸出的 K 也加 1; 輸出每行後,需要將變數 ch 回滾到下一行的第乙個字元位置,即減去 2k-1。 >>>More

13個回答2024-08-09

讓我舉個例子。

int a() >>>More

9個回答2024-08-09

#include

int** transpose(int** a,int row,int col) >>>More

5個回答2024-08-09

1 x=15,i=2

2 (1) 在 while() 迴圈前新增 s=0; 陳述。 >>>More