-1
我一直試圖解決的問題,其中,所述查詢是:爲什麼我的矩陣不會返回到屏幕的任何價值?
更換主對角線中的每個元素與它上面的所有元素的總和(在同一列中)以及位於右從它(在同一行)
更換相對對角線的每個元素與它下面的所有元素的總和(在同一列),並從它位於左(在同一行中)
我的問題:我不知道爲什麼輸入完成
後讀取矩陣
#include <stdio.h>
int main(){
int i,j,m,k,a[100][100],new_mat[100][100];
scanf("%d%d",&m,&k); //m=rows, k=columns
for (i = 0 ; i < m ; i++)
for (j = 0 ; j < k ; j++)
scanf("%d", &a[i][j]);
//初步解決方案不顯示任何東西,但它也只是在最近首次覆蓋元素它,而不是下面的所有元素的總和向上
/*
for(i=0;i<m;i++)
{
for(j=0;j<k;j++)
{
if(i==j)
if(j+1<k && i-1>=0)
{a[i][j]+=a[i][j+1]+a[i-1][j];}
if(i+j==m-1)
if(j-1>=0 && i+1<k)
{a[i][j]=a[i][j-1]+a[i+1][j];}
}
}
*/
所以,我試圖去夠所有的附加其餘元素週期
for(i=0;i<m;i++)
{
for(j=0;j<k;j++)
{
if(i==j)
for(;j+1<k,i-1>=0;j+1,i-1)
{
a[i][j]+=a[i][j+1]+a[i-1][j];
}
if(i+j==m-1)
for(;j-1>=0,i+1<k;j-1,i+1)
{
a[i][j]=a[i][j-1]+a[i+1][j];}
}
}
,然後打印結果:
for (i=0; i<m; i++)
for(j=0; j<k; j++)
printf("%d ", a[i][j]);
printf("\n");
return 0;}
然而,在進入矩陣,沒有出現和值沒有返回到屏幕
「*的值不會返回到屏幕*」這可能會費沒有'的printf()'被調用。您可能想使用調試器來運行代碼。無論如何,這實際上應該是解決這些問題的第一步。 – alk