Hola, espero que puedan ayudarme, tengo un problema con mi código ya que las sumas horizontales salen sin problemas, peor las verticales no.
Este es mi código, ya estuve buscando en internet pero todos usan for en lugar de do while
Muchas Gracias!!!
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
int main()
{
int m[4][6], i, j, s=0, q[6];
srand(time(NULL)); //semilla
{
for(i=0;i<4;i++)
{
for(j=0;j<6;j++)
{
do
{
m[i][j]=rand()%110+20;
}
while(m[i][j]%5!=0);
printf("%d\t",m[i][j]);
s+= m[i][j];
q[j]+=m[i][j];
}
printf("-> %d\t\n",s); s=0;
}
printf("\n\n");
for(i=0;i<6;i++)
{
printf("%d\t",q[i]);
}
} return 0;
}
lo que quieres es un algoritmo que de la sumatoria de todas las filas y despes la sumatoria de las columnas de tu matriz 4x6?? o que solo sume las filas??
q está mal, no tiene inizializado a 0 ninguno de sus índices antes de empezar a sumar por lo tanto siempre dará valores extraños.
Cita de: Kenji-chan en 13 Marzo 2017, 06:27 AM
lo que quieres es un algoritmo que de la sumatoria de todas las filas y despes la sumatoria de las columnas de tu matriz 4x6?? o que solo sume las filas??
Quiero la sumatoria por filas y despues por columnas, la de las filas me la da sin problemas pero en las sumatorias de las columnas no.
Soluciona q, como te he dicho, y el programa funcionará.
Cita de: MAFUS en 13 Marzo 2017, 15:51 PM
q está mal, no tiene inizializado a 0 ninguno de sus índices antes de empezar a sumar por lo tanto siempre dará valores extraños.
Según yo lo hice aquí
for(i=0;i<6;i++)
{
printf("%d\t",q[i]);
}
Pero no se cómo hacer que el acumulado en las filas sea cero cada vez que cambia a la siguiente, como lo hice en las columnas
printf("-> %d\t\n",s); s=0;
Y es ahí donde necesito ayuda.
Puedes hacer dos cosas:
1. Para los que empiezan. Justo después de la declaración de variables
for(i=0; i < 6; ++i)
q[i] = 0;
2. Para los que ya han visto un poco más de arrays. Cuando declares q simplemente debes hacerlo
q[6] = {0};
#include <stdio.h>
#include <time.h>
int main(){
int m[4][6], i, j, s, f[6], c[6];
srand(time(NULL)); //semilla
i = 0;
do{
s = 0;
j = 0;
do{
m[i][j]=rand()%110+20;
printf("m[%d][%d]=%d ", i, j, m[i][j]);
s += m[i][j];
j++;
}while(j<6);
f[i] = s;
printf("\nf[%d] = %d\n", i, s);
j = 0;
do{
if(i == 0) c[j] = m[i][j];
else c[j] += m[i][j];
j++;
}while(j<6);
i++;
}while(i<4);
j = 0;
while(j<6){
printf("c[%d] = %d ", j, c[j]);
j++;
}
return 0;
}
este codigo utiliza los do while como querias, en el array f[] se almacenan las filas y en c[] las columnas