當前位置:編程學習大全網 - 編程語言 - 求救(計算機編程)

求救(計算機編程)

把上面的表保存到 二維數組 中,然後 按照列 進行掃描就可以統計出來了。

下面是C/C++語言編寫的程序(在VC 6.0上測試通過),有比較詳細的註釋:

#include <stdio.h>

void main(){

int i,j; /*用於循環變量*/

/*

將下面的屬性保存到二維數組中

序號 屬性1 屬性2 屬性3 屬性4

0 0 0 1

1 0 1 0

0 1 1 1

1 1 0 0

1 0 1 0

*/

int arr[5][4] = {

{0,0,0,1},

{1,0,1,0},

{0,1,1,1},

{1,1,0,0},

{1,0,1,0}

}; /* 5行4列*/

/* 保存屬性對應的 0 與 1 的分類信息 */

/*

-1 是 arrResult 中默認的數字

每行的 0-4位置 用於保存 0 在原始數組的行的位置

每行的 5-9位置 用於保存 1 在原始數組的行的位置

*/

/* 例如:屬性1 */

/* 保存到 arrResult 中之後是: */

/* [ 1 3 -1 -1 -1 2 4 5 -1 -1 ] */

int arrResult[4][10];

/*給數組初始化 */

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

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

arrResult[i][j]=-1;

}

}

/* 按照列 進行掃描 */

for ( j = 0; j < 4; j++ ){ /* 列循環 */

int zeroIndexInResult = 0;/*每行的 0-4位置 用於保存 0 在原始數組的列的位置*/

int oneIndexInResult = 5;/*每行的 5-9位置 用於保存 1 在原始數組的列的位置*/

for ( i = 0; i < 5; i++ ){ /* 行循環 */

if ( arr[i][j] == 0 ){

arrResult[j][zeroIndexInResult++]=(i+1);

} else {

arrResult[j][oneIndexInResult++]=(i+1);

}

}

}

/*打印出轉換後的屬性*/

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

printf( "屬性%d {", (i+1) );

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

if ( j < 5 ){ /*值為0的元素*/

if ( arrResult[i][j]==-1 ){ /* 表示已經沒有屬性值為0的元素了*/

j = 4; /* 因為執行continue後,for的位置會對j進行 +1 操作 */

printf( "}; {" );

continue;

}

if ( j == 0 ){

printf( "%d", arrResult[i][j] );

} else {

printf( ",%d", arrResult[i][j] );

}

} else { /*值為1的元素*/

if ( arrResult[i][j]==-1 ){ /* 表示已經沒有屬性值為1的元素了*/

printf( "}\n" );

break;

}

if ( j == 5 ){

printf( "%d", arrResult[i][j] );

} else {

printf( ",%d", arrResult[i][j] );

}

}

}

}

}

  • 上一篇:女朋友希望自己表白,我該用什麽歌表達自己的喜悅
  • 下一篇:建壹個網站到底要花多少錢
  • copyright 2024編程學習大全網