como hago para imprimir un array repetido

Iniciado por luis9829, 20 Agosto 2017, 01:29 AM

0 Miembros y 2 Visitantes están viendo este tema.

luis9829

veran el problema es el siguiente me dice que tengo que ingresar los datos de la primera fila de una matriz y el programa lo que hara sera repetirlos hasta cierta dimension por ejemplo si la matriz es 4x4
entrada
elemento[1][1] 1
elemento[1][2] 2
elemento[1][3] 3
elemento[1][4] 4

salida
1234
1234
1234
1234

se que para hacer una matriz que reciba todos los elementos es el siguiente codigo
#include<stdio.h>
int main(){
int matriz[4][4];
int i,j;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
printf("digite los valores de la matriz [%d][%d]:",i+1,j+1);
scanf("%d",&matriz[i][j]);
}
}
for(i=0;i<4;i++){
   for(j=0;j<4;j++){
   printf("%d",matriz[i][j]);
   }
   printf("\n");
}
}


en donde tendria que modificarle para que haga lo que me piden


· Los códigos deben ir en etiquetas GeSHi
· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex

SilentBolt

#1
Intenta explicar un poco mas tu duda, ¿Quieres imprimir los datos de la matriz hasta un punto especifico?, o ¿contabilizar la matriz?

si lo que quieres es contabilizar la matriz, puedes crear una variable que se llame por ejemplo "a", y que cada vez que la matriz avance a la variable "a" se le sume 1, y lo imprimes en pantalla, y una vez que la variable "a" sea mayor a 4 se devuelva a 1 haciendo el 1234 1234 y asi, el codigo quedaria algo asi :

#include<stdio.h>

int main(){
int matriz[4][4];
int i,j, a = 1;

for(i=0;i<4;i++){
for(j=0;j<4;j++){
printf("digite los valores de la matriz [%d][%d]:",i+1,j+1);
scanf("%d",&matriz[i][j]);
}
}

printf("\n");

for(i=0;i<4;i++){
         for(j=0;j<4;j++){
    if(a > 4){
        a = 1;//aqui haces el bucle 1234 1234
    }
            printf("matriz[%i][%i] = %i, numero %i\n", i + 1, j + 1, matriz[i][j], a);
            a++;//Aqui se le suma a "a" 1 y contabilizas la matriz
    }
    printf("\n");
   }
}


y si lo que quieres es que la matriz se imprima hasta un punto especifico, puedes hacer lo mismo con la variable "a" pero en este caso cuando llegue a un limite, uses un getch(); para hacer una pausa y el return 0;  ;D espero haberte sido de ayuda

luis9829

en parte tienes la idea pero en si no es lo que necesito osea el programa como tal solo me dejara ingreasar la primera fila de la matriz a imprimir y los demas datos se repiten

por ejemplo ingreso
1
2
3
4
su matriz de los elementos es
1234
1234
1234
1234

algo asi

SilentBolt

entonces podrias utilizar un triple bucle for, me explico:


for(a = 0; a < 4; a++){
        for(i = 0; i < 1; i++){//imprimira una sola fila
               for(j = 0; i < 4; i++){
                      printf("%i", matriz[i][j]);//imprimira todas las matrices "1234"
               }           
        }
        printf("\n");
}


aqui el resultado seria
1234
1234
1234
y asi, 4 veces, supongo que eso era lo que querias no?, y si quieres imprimir el valor de mas filas, cambia el valor de "j", para imprimir varias filas

luis9829

#4
bueno quizas no me hice entender muy bien pero algo asi era lo que necesitaba con todo dejo el codigo y gracias en parte por la ayuda

#include <stdio.h>
#include <stdlib.h>
void iniciarmatrizx(int matriz[4][4],int f,int c){
int i,j;
for(i=0;i<f;i++){
printf("digite los valores de la matriz[0][%d]:",i);
scanf("%d",&matriz[0][i]);
for(j=0;j<c;j++){
matriz[j][i]=matriz[0][i];
}
}
for(i=0;i<f;i++){
for(j=0;j<c;j++){
printf("%d",matriz[i][j]);
}
printf("\n");
}
}

int main()
{
   int matriz[4][4];
   iniciarmatrizx(matriz,4,4);
}



· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex

engel lex

Hola!

ya se te ha advertido en anterioridad sobre el uso de las etiquetas GeSHi en el foro, por favor cuando publiques código no olvides usar las etiquetas GeSHi (están arriba del editor de texto a la derecha, no hay perdida de ubicación ni de como usarlas)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.