Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - freddy91

Páginas: [1]
1
Hola, estoy haciendo un ejercicio y no sé que estoy haciendo mal. El ejercicio trata de que tienes que introducir una matriz por teclado y luego rotarla 90º a la derecha, pero internamente hay que utilizar una segunda matriz de punteros a enteros y hay que crear un algoritmo para rotar la primera matriz sobre esta segunda, pero en la segunda matriz se deberá cargar no el valor del elemento de la primera matriz, sino el puntero a su posicion.

Gracias de antemano

 
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#define FIL 7
#define COL 7
#define MAX 50

int main(int argc, char *argv[]) {

int matriz[FIL][COL]={0};
int *matriz2[FIL][COL]={NULL};
int fil1=0,col1=0;
int i=0,j=0,k=0,w=0;



do {
printf("Introduzca la dimension: ");
scanf("%d",&fil1);
}while(fil1<=0 || fil1>FIL);

col1=fil1;

for(i=0;i<fil1;i++){
for(j=0;j<col1;j++){
do{
printf("Introduzca el elemento [%d %d]: ",i+1,j+1);
scanf("%d",&matriz[i][j]);
}while(matriz[i][j]<=0 || matriz[i][j]>MAX);
}
}

k=0;
w=0;

for(j=0;j<fil1;j++){
    for(i=fil1-1;i>=0;i--){
matriz2[k][w]=&matriz[i][j];
w++;

}
k++;
w=0;
}

for(i=0;i<fil1;i++){
for(j=0;j<col1;j++){
printf("%d ",matriz[i][j]);
}
printf("\n");
}

for(i=0;i<fil1;i++){
for(j=0;j<col1;j++){
printf("%d ",*matriz2[i][j]);
}
printf("\n");
}

return 0;
}


Edit: Ya lo arreglé, me faltaba poner

Código: [Seleccionar]
printf("%d ",*matriz2[i][j]);
Se me olvidó el *

Saludos

2
Hola tengo un problema con un código que estoy haciendo(soy nuevo en esto).Tengo que hacer la media de n numero y cuando se introduzca un numero negativo se pare.Esto es es lo que tengo hecho:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {


int contador=0;
float media=0,notas=0,total_notas=0;



printf("Ingrese la nota o un numero negativo para salir: ");
scanf("%f",&notas);
while(notas>=0){
contador++;
total_notas=total_notas+notas;
printf("Ingrese la nota o un numero negativo para salir: ");
scanf("%f",&notas);


}
if (contador!=0)
media=total_notas/contador;


printf("Total de alumnos presentados a examen: %d\n",contador);
printf("Nota media: %f\n",media);



return 0;
}
El problema es que al hacer la media me cuenta el numero negativo y la media sale mal.¿Cómo podría arreglarlo?
Gracias de antemano

EDIT: Ya lo he solucionado
Así me queda el código
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {


float contador=0,aprobado=0,suspenso=0,notable=0,deficiente=0,sobresaliente=0;
float media=0,notas=0,total_notas=0;
float por_sobre=0,por_not=0,por_apro=0,por_sus=0,por_defi=0;


do{
;
printf("Ingrese la nota o numero negativo para salir: ");
scanf("%f",&notas);
if (notas<10 & notas>=0){
contador++;
if(notas>=9 )
sobresaliente++;

if(notas>=7 & notas<9)
notable++;
if(notas>=5 & notas<7)
aprobado++;
if(notas>=2 & notas<5)
suspenso++;
if(notas<2)
deficiente++;
total_notas=total_notas+notas;






}
}while(notas>0);


media=total_notas/contador;
por_sobre=(sobresaliente/contador)*100;
por_not=(notable/contador)*100;
por_apro=(aprobado/contador)*100;
por_sus=(suspenso/contador)*100;
por_defi=(deficiente/contador)*100;
printf("Total alumnos presentados a examen: %g\n",contador);
printf("Numero de sobresalientes: %g (%.2f)\n",sobresaliente,por_sobre);
printf("Numero de notable: %g (%.2f)\n",notable,por_not);
printf("Numero de aprobados: %g (%.2f)\n",aprobado,por_apro);
printf("Numero de suspensos: %g (%.2f)\n",suspenso,por_sus);
printf("Numero de muy deficientes: %g (%.2f)\n",deficiente,por_defi);

if(media>=5){
printf("Nota media: %.2f (Aprobado)\n",media);
}
else{
printf("Nota media: %.2f (Suspenso)\n",media);
}



return 0;
}

¿De que forma podría optimizarlo más?

3
Hola a todos, hace nada que empece a programar en c y estaba haciendo un programa y no sé como arreglarlo. El código en cuestión es este:

Código: [Seleccionar]
#include <stdio.h>
int main()
{
int n,contador;
float suma,media;

suma=0;
contador=0;
n=1;
printf ("Para salir introduzca 0 o un numero negativo\n");
while ((n!=0)&&(n>0)){
printf("Introduzca un numero \n");
scanf("%i",&n);
suma=suma+n;
contador++;
}
 
media=suma/(contador);
printf("La media es %f",&media);

return 0;
}
   

Lo que debería hacer es la media de n números y que cuando se introduzca un numero negativo o cero se parara y haga la media, pero el problema es que cuando introduzco el 0 o un negativo me pone que la media es 0. ¿Qué he hecho mal?

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".