***leer una matriz de NxM de enteros, generar un arreglo de structs que almacene para cada fila, el índice de la fila y :
- la suma de los múltiplos de N (en dicha fila) . - si ni hubiese múltiplos la cantidad de pares (en dicha fila). - si no hubiese ni múltiplos ni pares, no generar elemento para esa fila.
Nota: implementar funciones que evaluen los resultados pedidos en una fila de la matriz, pasando como argumento la fila como arreglo unidimensional. Ejemplo: matriz "A" 4x3: 3 1 21 16 5 8 7 11 9 10 7 14
B(arreglo): |1,24|,|3,2| respuestas
#include <stdio.h> #include <stdlib.h> #define M 5
struct arreglo { int indice,suma,par; };
void lee (int a[][M], int *dn, int *dm); int sumar (int a[][M], int i, int dn, int dm); int pares (int a[][M], int i, int dm); //void esc (int a[][M], int dn, int dm);
int main() { int a[20][M], dn=0, dm=0,i,j,k=0, sum, cont; struct arreglo v[10];
lee(a,&dn,&dm); for (i=0;i<dn;i++) { sum=0; sum=sumar (a,i,dn,dm); if (sum!=0) { printf("%d",v[k].indice=i); printf("\t%d",v[k].suma=sum); k++; } else{ cont=0; cont=pares(a,i,dm); if (cont!=0) { printf("\n%d",v[k].indice=i); printf("\t%d",v[k].par=cont); k++; } } printf("\n"); } }
void lee(int a[][M], int *dn, int *dm) { int i, j; FILE *fp; fp=fopen ("numeros.txt","r"); fscanf(fp,"%d",dn); fscanf (fp,"%d",dm); // leo cant de filas y cant de columnas for (i=0;i<*dn;i++) for (j=0;j<*dm;j++) fscanf(fp,"%d",&a[j]); fclose(fp); }
int sumar(int a[][M], int i, int dn, int dm) { int j, sum=0; for (j=0;j<dm;j++) if ((a[j]%dn)==0) sum+=a[j]; return sum; } int pares(int a[][M], int i, int dm) { int j, cont=0; for (j=0;j<dm;j++) if ((a[j]%2)==0) cont++; return cont; }
|