Ayuda en lenguaje c basico con funciones

Iniciado por Roga, 17 Mayo 2017, 02:48 AM

0 Miembros y 1 Visitante están viendo este tema.

Roga

Buenas tengo un problemas no quiere entrar en los if`s. Ademas uso funciones porque lo piden en el anunciado de la guia. muchas gracias.
/*Hacer un programa en Lenguaje C que permita cargar dos vectores con cinco números enteros cada uno y determinar lo siguiente: ¿Cuál es el número mayor de los
dos vectores?*/
#include<stdio.h>
void mayor(int numerosa[2][4]);
int main(){
int vector,vectora,numeros[2][4];
printf("Cargue 2 listas de 5 numeros para definir el mayor de cada uno.\n");
for(vector=0;vector<2;vector++){
printf("\n");
for(vectora=0;vectora<5;vectora++){
printf("Cargue el valor %d de la lista %d:",vectora+1,vector+1);
scanf("%d",&numeros[vector][vectora]);
}
}
mayor(numeros);
printf("\n");
system("pause");
return 0;
}
void mayor(int numerosa[2][4]){
int filas,columnas,mayora,mayorb;
mayora=0;
mayorb=0;
for(filas=0;filas<2;filas++){
for(columnas=0;columnas<5;columnas++){
if(filas==0){
if(numerosa[filas][columnas]>numerosa[filas][columnas]){
mayora=numerosa[filas][columnas];
}
}
if(filas==1){
if(numerosa[filas][columnas]>numerosa[filas][columnas]){
mayorb=numerosa[filas][columnas];
}
}
}
}
printf("El valor mayor de la primera lista es=%d.\nEl valor mayor de la segunda lista es=%d.",mayora,mayorb);
}

engel lex

if(numerosa[filas][columnas]>numerosa[filas][columnas])

no entra porque un numero nunca es mayor a si mismo
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.

Roga

#2
me falto pasar mas codigo  :-(. porque lo modifique y se me olvido modificarlo hasta donde para mi esta bien. pero por falta de conocimiento no me da. gracias :D por comentar. ya vi mi error gracias. ya lo modifico.
Gracias!!!. por ayudarme a ver mi error. al final quedo asi.
/*Hacer un programa en Lenguaje C que permita cargar dos vectores con cinco números enteros cada uno y determinar lo siguiente: ¿Cuál es el número mayor de los
dos vectores?*/
#include<stdio.h>
void mayor(int numerosa[2][5]);
int main(){
int vector,vectora,numeros[2][5];
printf("Cargue 2 listas de 5 numeros para definir el mayor de cada uno.\n");
for(vector=0;vector<2;vector++){
printf("\n");
for(vectora=0;vectora<5;vectora++){
printf("Cargue el valor %d de la lista %d:",vectora+1,vector+1);
scanf("%d",&numeros[vector][vectora]);
}
}
mayor(numeros);
printf("\n");
system("pause");
return 0;
}
void mayor(int numerosa[2][5]){
int filas,columnas,mayora,mayorb,aux,auxa;
mayora=0;
mayorb=0;
for(filas=0;filas<2;filas++){
for(columnas=0;columnas<5;columnas++){
if(filas==0){
if(columnas==0){
aux=numerosa[filas][columnas];
}
if(columnas>0){
if(aux<numerosa[filas][columnas]){
mayora=numerosa[filas][columnas];
aux=numerosa[filas][columnas];
}
}
}
if(filas==1){
if(columnas==0){
auxa=numerosa[filas][columnas];
}
if(columnas>0){
if(auxa<numerosa[filas][columnas]){
mayorb=numerosa[filas][columnas];
auxa=numerosa[filas][columnas];
}
}
}
}
}
printf("El valor mayor de la primera lista es=%d.\nEl valor mayor de la segunda lista es=%d.",mayora,mayorb);
}

se agradece si me ayudan a optimizarlo.


· No hagas doble post
>aquí las reglas del foro
-Engel Lex

engel lex

para optimiarlo, cambia aux a 0 si son numeros solo positivos o al minimo  si son con signo así te ahorras los condidicionales comumna == y columna >



en lugar de usar mayora y mayorb, usa num_mayor[2] (coloqué num para uqe no no coincida con el nombre de la funcion), así no necesitas repetir el proceso, sino que accedes de una vez con el valor de filas
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.