1樓:網友
#include ""
void exchange(int a[25]);子函式宣告。
void main()
int b[25]; 用一維陣列表示矩陣。
int i;
printf("請輸入5*5矩陣:");
for(i=0;i<25;i++)輸入矩陣。
scanf("%d",&b[i]);
exchange(b); 進行轉換。
printf("轉換之後的矩陣為:");
for(i=0;i<25;i++)輸出矩陣。
printf("%3d",b[i]);
if(0==(i+1)%5)
printf("");
進行5次迴圈遍歷,找出最大值與最小值,然後與相應位置交換資料。
void exchange(int a[25])int i,j,m,n;
m=a[1];
for(i=0;i<25;i++)最小值放到左上角。
if(a[i]<=m)
m=a[i];
j=i;n=a[j];
a[j]=a[0];
a[0]=n;
m=a[1];
for(i=0;i<25;i++)次小值放到右上角。
if(i!=0)
if(a[i]<=m)
m=a[i];
j=i;n=a[j];
a[j]=a[4];
a[4]=n;
m=a[1];
for(i=0;i<25;i++)次次小值放到左下角。
if((i!=0)&&i!=4))
if(a[i]<=m)
m=a[i];
j=i;n=a[j];
a[j]=a[20];
a[20]=n;
m=a[1];
for(i=0;i<25;i++)
if((i!=0)&&i!=4)&&i!=20)) 次次次小值放到右下角。
if(a[i]<=m)
m=a[i];
j=i;n=a[j];
a[j]=a[24];
a[24]=n;
m=a[1];
for(i=0;i<25;i++)最大值放中間。
if(a[i]>=m)
m=a[i];
j=i;n=a[j];
a[j]=a[12];
a[12]=n;
return;
你看看這個程式,這個程式會幫你解決你想知道的和你想問而沒問道的問題。 這個程式優點很多。
2樓:網友
二維陣列直接訪問就行啦,比要輸出左上角那個就這樣:
printf(「%d",a[0][0]);其他的直接用a[n-1][1],a[1][n-1],a[n-1]n-1]分別替換a[0][0]就行,不必用for語句。
3樓:匿名使用者
int number[10][10];
int i,j,k=1;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
number[i][j]=k;
k++;int num;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
num=number[i][j];
printf...
如果你指的n*n,n要自己輸入的話,就要動態分配了。
c語言程式設計問題,C語言程式設計問題?
int main printf 字母數 d n空格數 d n數字數 d n其他字元數 d n letters,space,digit,other return 0 第一個問題 無效的主要 i 100 i 100 第二個問題,到1 100奇 0 int i 1 i 1 100 i i 100 而 i ...
C語言程式設計問題,c語言程式設計問題
先while或do while輸入成績,成績放入先定義的陣列,直到輸入負數結束。然後for迴圈算出總成績,然後定義變數平均直,算出變數直。for迴圈裡套if條件低於60輸出。課本上有例子,你看呀。c語言程式設計問題 提問怎麼改。把replace函式提到main函式外面。提到main函式的前面。或者在ma...
C語言程式設計問題,c語言程式設計問題
我只感覺到上面的程式有錯誤,但是不是死迴圈啊。這句感覺就不對。d d 沒有對應的接受鍵盤輸入的變數。for j 0 j 5 j stu1 i tot stu1 i tot stu1 i score j 很明顯上面這樣輸入會造成越界。當j 4的時候stu1 i score 4 是沒有意義的。print...