誰跟我講解一下,我不懂這個

#include <stdio.h>

#include <stdlib.h>

#define n 4

int gra[n][n];

void hien(void){

int i, j;

srand(time(NULL));

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

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

gra[j][i]=rand()%101;

printf("[%d]\t", gra[j][i]);

}

printf("\n");

}

}

void tong1(void){

int i, j, dem=1, subtotal;

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

subtotal=0;

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

subtotal += gra[j][i];

}

printf("第 %d 列 總和 : %d , 平均: %.2f\n", j+1, subtotal, (float)subtotal/4);

}

}

void tong2(void){

int i, j, dem=0, subtotal=0;

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

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

if (i == j)

subtotal += gra[j][i];

}

printf("對角線(左上-右下)元素的總和: %d\n", subtotal);

}

void tong3(void){

int sum=0 ;

int i, j, dem=0, subtotal=0;

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

sum += gra[j][3-j];

printf("對角線(右上-左下)元素的總和: %d\n", sum);

}

int main(void) {

hien();

tong1();

tong2();

tong3();

system("pause");

return 0;

}

1 個解答

評分
  • 7 年前
    最佳解答

    你總該講一下那裡不懂吧

    沒甚麼特別的阿

    用亂數給予陣列值

    然後計算

    對角線的值而已

    2013-05-10 13:30:20 補充:

    #include

    #include

    #define n 4 //定義陣列大小

    int gra[n][n];//4*4陣列

    void hien(void){

    int i, j;

    srand(time(NULL)); //亂數種子

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

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

    gra[j][i]=rand()%101;//亂數函式 取值<0-00

    printf("[%d]\t", gra[j][i]);

    }

    printf("\n");

    }

    }

    void tong1(void){

    int i, j, dem=1, subtotal;

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

    subtotal=0; //每列重新計算

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

    subtotal += gra[j][i];//列總和 [0][0]+[0][1]+.......[0][4]

    [1][0]+[1][1]+.......[1][4]

    }

    printf("第 %d 列 總和 : %d , 平均: %.2f\n", j+1, subtotal, (float)subtotal/4);//算平均

    }

    }

    void tong2(void){

    int i, j, dem=0, subtotal=0;

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

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

    if (i == j)

    subtotal += gra[j][i];//條件式i=j ->對角線 [0][0]+[1][1]..[4][4]

    }

    printf("對角線(左上-右下)元素的總和: %d\n", subtotal);

    }

    void tong3(void){

    int sum=0 ;

    int i, j, dem=0, subtotal=0;

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

    sum += gra[j][3-j]; //反過來 [0][3]+[1][2]+[2][1]+[3][0]

    printf("對角線(右上-左下)元素的總和: %d\n", sum);

    }

    int main(void) {

    hien(); //呼叫函式

    tong1();

    tong2();

    tong3();

    system("pause");

    return 0;

    }

還有問題?馬上發問,尋求解答。