2016-04-01 31 views
0
void ArrayDiagonal(double Array[4][4]) 
{ 
    //declare local variables// 
    int i,j=0; 
    double dSum = 0; 
    for(i=0;i<4;i++) 
     { 
      for(j=0;j<4;j++) 
      { 
       if(i==j) 
       { 
        dSum=dSum+Array[i][j]; 
       } 
      } 
     } 
    printf("The sum of the main diagonal elements is = %.2f\n", dSum); 
    OffArrayDiagonal(Array); 
} 

void OffArrayDiagonal(double Array[4][4]) 
{ 
    //declare local variables// 
    int i,j=0; 
    double dOff= 0; 
    for(i=0;i<4;i++) 
     { 
      for(j=4;j=0;j++) 
      { 
       if(i==j) 
       { 
        dOff=dOff+Array[i][j]; 
       } 
      } 
     } 
    printf("The sum of the off diagonal elemets is = %.2f\n", dOff); 
} 

Bu yüzden bir proje için dizinin köşeli elemanlarını birlikte eklemeliyim. İlk işlev düzgün çalışıyor, ancak düzgün çalışması için diğer yönü alamıyorum. Herhangi bir fikir?Bir 2B dizisini c

cevap

1

Bir sorun, j'un 4'ten başlayıp 5'e 6'lık artışları (arttığını) başlatmasıdır. Ayrıca 4 yerine 3'te başlamak da gerekir. Ayrıca, j'a hiçbir şey atamak istemezsiniz. koşullu. Yani for(j=3;j>=0;j--) kullanın.

Köşegen tek boyutlu olduğundan, iki boyutlu bir yinelemeye ihtiyacınız yok. Bu nedenle daha basit ve daha verimli bir çözüm,

ve benzer şekilde ilk diyagonal olacaktır.

+0

Harika, Teşekkürler! – JMBTaylor

İlgili konular