Autor
|
Tema: Ayuda programa en C! (Leído 2,023 veces)
|
joseh94
Desconectado
Mensajes: 7
|
Hola a todos! Estoy haciendo ejercicios de la universidad sobre programacion en C, y tengo un ejercicio que me pide dado un vector (que yo voy introduciendo) dar la posición del número más cercano al primero, y he escrito el siguiente código: #include <stdio.h>
main() { int n,cont,h; float vector[80]; printf("Cuantos numeros?: "); scanf("%d",&n); for(cont=0;cont<n;cont++) { printf("x= "); scanf("%f",&vector[cont]); } h=vector[1]-vector[0]; for(cont=2;cont<n;cont++) if(abs(vector[cont]-vector[0])<h) h=cont; printf("La posicion del mas cercano es: %d\n",h); return 0; }
Pero por ejemplo al introducir el vector [2,6,4,1,10], la salida es un 4, osea, me dice que el más cercano al 2 es el 10, y tendría que dar un 3, ¿alguien me puede ayudar?. Gracias de antemano!!
|
|
|
En línea
|
|
|
|
Flakito81
Desconectado
Mensajes: 519
|
debe de ser cosa del cansancio pero no entiendo exactamente lo que tiene que hacer el programa. ¡podrias poner dos ejemplos?
|
|
|
En línea
|
|
|
|
crack81
Desconectado
Mensajes: 222
|
Buenas amigo aqui esta tu codigo lo reutilize del tuyo porque me dio flojerea tenias problemas con las llaves{} sin mas aqui esta : #include <stdio.h> #include<stdlib.h> main() { int n,cont,h,pos=1; float vector[80]; printf("Cuantos numeros?: "); scanf("%d",&n); for(cont=0;cont<n;cont++) { printf("x= "); scanf("%f",&vector[cont]); } h=abs(vector[0]-vector[1]); for(cont=2;cont<n;cont++){ if((abs(vector[cont]-vector[0]))<h){ h=abs(vector[0]-vector[cont]); pos=cont; } } printf("La posicion del mas cercano es: %d\n",pos); return 0; }
|
|
|
En línea
|
Si C/C++ es el padre de los lenguajes entonces ASM es dios.
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Buenas amigo aqui esta tu codigo lo reutilize del tuyo porque me dio flojerea tenias problemas con las llaves{} .....................................................
Falta el tipo "int" de la función main. ¿Y por qué no usar el mismo for de entrada de los datos para ir averiguando la posición? : #include <stdio.h> #include<stdlib.h> int main ( ) { int n , cont , pos = 1 ; float vector [ 80 ] ; printf ( "Cuantos numeros?: " ) , scanf ( "%d" , &n ) ; for ( cont = 0 ; cont < n ; cont++ ) { printf ( "x = " ) , scanf ( "%f" , &vector [ cont ] ) ; if( cont > 1 && ( abs ( vector [ cont ] - vector [ 0 ] ) ) < abs ( vector [ pos ] - vector [ 0 ] ) ) pos = cont ; } printf( "\nLa posicion del mas cercano es: %d\n " , pos ) ; return 0; }
¡¡¡¡ Saluditos! ..... !!!!
|
|
« Última modificación: 5 Noviembre 2014, 18:47 pm por leosansan »
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
leosansan, se te coló una coma entre el printf y el scanf.
Por un momento pensé que ibas a meter macros jejejeje
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
leosansan, se te coló una coma entre el printf y el scanf.
No se me coló, lo puse así para ahorrar una línea por cada pareja de printf y scanf . Por un momento pensé que ibas a meter macros jejejeje
Y dale, ¡Ouggg Gran Maestro!, estando tú presente ni me atrevo a esas cosas. Un fuerte abrazo amigo eferion. ¡¡¡¡ Saluditos! ..... !!!!
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
No se me coló, lo puse así para ahorrar una línea por cada pareja de printf y scanf . ¿No debería ser un punto y coma en vez de solamente una coma? jejeje Y dale, ¡Ouggg Gran Maestro!, estando tú presente ni me atrevo a esas cosas. Gran maestro yo??? jajajaja, me halagas. Tampoco te creas que soy un gurú de las macros... de echo prefiero evitarlas salvo para cosas muy muy muy concretas. Yo personalmente pienso que las macros son uno de los cánceres de C++... la compilación de programas en C++ es lentísima en parte gracias a la existencia de las macros... no ofrecen ningún tipo de tipado... su código no se puede depurar...
|
|
« Última modificación: 5 Noviembre 2014, 21:51 pm por eferion »
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
¿No debería ser un punto y coma en vez de solamente una coma? jejeje
"Creo" que puedes separar instrucciones/funciones, como el scanf y el printf, por una coma sin necesidad de un punto y coma para cada uno de ellos. Vamos, como el declarar varias variables del tipo int, como ejemplo: int i , j , k ; Gran maestro yo??? jajajaja, me halagas.
A cada uno lo que se merece y sí, es un halago a tus profundos conocimientos de C++...y C. ¡¡¡¡ Saluditos! ..... !!!!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
AYUDA CON PROGRAMA
Diseño Gráfico
|
Luisango
|
1
|
2,453
|
17 Abril 2005, 13:25 pm
por Sub_Cero
|
|
|
ayuda con mi programa
Programación Visual Basic
|
nitrox
|
2
|
2,355
|
31 Julio 2005, 00:48 am
por Slasher-K
|
|
|
ayuda programa!!
Programación C/C++
|
rodrigo_103
|
4
|
3,372
|
16 Septiembre 2012, 21:58 pm
por rodrigo_103
|
|
|
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
|
Zodiak98
|
1
|
6,157
|
8 Diciembre 2013, 01:51 am
por Eleкtro
|
|
|
[AYUDA] Ayuda con NETCAT o cualquier otro programa similar
Dudas Generales
|
Noxware
|
0
|
2,183
|
16 Junio 2014, 18:13 pm
por Noxware
|
|