Ayuda (Programación informática)
Guarde la tabla anterior en una matriz bidimensional y luego escanee según las columnas para calcular las estadísticas.
El siguiente es un programa escrito en lenguaje C/C (probado en VC 6.0), con comentarios más detallados:
#include lt; p>void main(){
int i, j; /*for variables de bucle*/
/*
Guarde las siguientes propiedades en dos matriz -dimensional
Número de serie atributo 1 atributo 2 atributo 3 atributo 4
0 0 0 1
1 0 1 0
0 1 1 1
1 1 0 0
1 0 1 0
*/
int arreglo[5][4] = {
{0, 0, 0, 1},
{1, 0, 1, 0},
{0, 1, 1, 1 },
{1, 1, 0, 0},
{1, 0, 1, 0}
} /* 5 filas y 4; columnas */
/* Guarda la información de clasificación de 0 y 1 correspondiente al atributo*/
/*
-1 es el número predeterminado en arrResult
Las posiciones 0-4 de cada fila se usan para almacenar la posición de 0 en la fila de la matriz original
Las posiciones 5-9 de cada fila se usan para almacenar la posición de 1 en la fila de la matriz original
*/
/* Por ejemplo: atributo 1 */
/* Después de guardar en arrResult: */
/* [ 1 3 -1 -1 -1 2 4 5 -1 -1 ] */
int arrResult[4][10];
/*Inicializa la matriz*/
for ( i = 0; i lt; 4; i ){
for ( j = 0; j lt; 10; j ){
arrResult[i] [j]=-1
}
}
/* Escanear por columna*/
for ( j = 0 ; j lt; 4; j ){ /* Bucle de columna*/
int zeroIndexInResult = 0 /*Las posiciones 0-4 de cada fila se utilizan para guardar 0; en la posición de la columna de la matriz original*/
int oneIndexInResult = 5; /*Las posiciones 5-9 de cada fila se utilizan para guardar la posición de 1 en la columna de la matriz original*/ p>
for ( i = 0; i lt; 5 ; i ){ /* Bucle de fila*/
if ( arr[i][j] == 0 ){
arrResult[j][zeroIndexInResult ]=(i 1) ;
} else {
arrResult[j][oneIndexInResult ]=(i 1);
}
}
}
/*Imprimir los atributos convertidos*/
para ( i = 0; i lt; 4; i ){
printf( "Atributo d {", (i 1)
para ( j = 0; j lt; 10; j ){<
/p>
if ( j lt; 5 ){ /*Elemento con valor 0*/
if ( arrResult[i][j]==-1 ){ /* significa que no hay more El elemento con valor de atributo 0 es */
j = 4; /* Porque después de ejecutar continuar, la posición de for realizará 1 operación en j*/
printf( " }; {" );
continuar;
}
si ( j == 0 ){
printf( "d" , arrResult [i][j] );
} else {
printf( ", d", arrResult[i][j] ); }
} else { /*Elemento con valor 1*/
if ( arrResult[i][j]==-1 ){ /* Indica que no hay ningún elemento con valor del atributo 1 Elemento*/
printf( "}\n"
break;
}
if ( j = = 5 ){
printf( "d", arrResult[i][j]
} else {
printf( ", d",); arrResult[ i][j] );
}
}
}
}
}