-
程式有問題,在初始化矩陣的時候,有一些問題,因為是二維矩陣,所以需要用兩個迴圈來控制行和列... 具體步驟如下。
#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("");
-
按照 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("");要換行執行結果,請執行以下操作:
-
#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;
魔方的填寫方法最簡單,用奇數,把第乙個數字放在第一行的第一列**,然後填到右邊(左),如果右邊(左)有數字,則填下,如下圖所示:
-
這個程式至少有兩個問題(可能還有其他錯誤,我會再看一遍),第乙個if(m=1)應該是m==1,行數是1,直接返回。
第二個問題,迴圈巢狀不正確,以下正確**,注意支撐位置。
for (i = 0; i
-
我不明白。 但是if(m=1)顯然應該是if(m==1)。
-
迴圈 A34 的第乙個雙精度被替換為 AIJ
-
帶中斷寫入,設定優先順序。
-
你寫的 fun 函式有乙個返回值,你只需給函式新增 return,呼叫它的時候還需要對返回值進行處理。
-
我用乙個二維陣列儲存了一下,發給房東參考。
#include
#define max 10
void fun(int a[max],int x )fflush(stdin);
int main()
elsefor( i = 0 ; i < num ;i++)reutn 0;}
-
執行 cpucash 的演算法。 我發現還是有點問題。 在上面更改了它。 解決了點邏輯問題。 執行結果正確。
#include
int main(void)
必須初始化最終結果。
int i,n;
char op='+';
scanf("%d",&n);
while(op!='#'這個地方變了};for(i=1;i<=n*n;i++) 輸出。
return 0;}
-
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
-
i != n 顯然是錯誤的,應該與 i 一起使用!= n-1
j !=n 類似。
當然,要更改為 &&,這取決於您的需要,因為“除了子對角線的最後一列和最後一行”仍然模稜兩可)。
-
#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 是:"
-
我真的不明白你這個問題是什麼意思,你能解釋得更清楚嗎?
總結。 吻。 <>
<>執行的結果如下: 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