Autor
|
Tema: Leer secuencia de doubles hasta tecla enter (Leído 2,883 veces)
|
radix.2007
Desconectado
Mensajes: 2
|
Hola muchachos, soy nuevo en el foro, enohora buena por la web. Soy estudiante de ingenieria en informática de sistemas, y aunque el lenguaje predeterminado que usamos es Java, hemos tocado algo de C, pero ahora estoy interesado en C++, estoy haciendo un programa que me calcule la media de una secuencia de números decimales, tengo que hacerlo con la instrucción 'cin', pero me encuentro con un problema, que la secuencia puede estar formada por 1, o dos o tres o 10 números, de manera que me hace falta leer los números hasta que pulse la tecla intro que supongo que es cuando verdaderamente se vací el buffer de teclado, los números los separo con espacions y al pulsar intro me tiene que calcuar la media, si he introducio 4 números pues tendria que sumar el total y dividirlo por 4 para calcular la media, pero mi principal problema es que no sé como hacer para que cuando pulse intro pueda leer esos 4 números separados por espacios (serian números decimales), alguna idea ?, saludos.
|
|
|
En línea
|
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
while (cin>>Numero[i]) { i++; }
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
.............................................................. pero mi principal problema es que no sé como hacer para que cuando pulse intro pueda leer esos "n" números separados por espacios (serian números decimales), alguna idea ?, saludos.
Espero que surjan ideas más ingeniosas que la que yo propongo. En principio es todo un reto al no tener prefijado el número n:#include <iostream> #include <cstdio> #include <cstdlib> using namespace std; main() { int i=0,j=0,k=0; float suma=0,Numero[100]={0}; char Numero_char[15][10],cad[100]; gets (cad); for (i = 0; i < cad[i]!='\0'; i++){ if (cad[i]==' ') { Numero_char[k][j]='\0'; k++;j=0; continue; } else { Numero_char[k][j]=cad[i]; j++; } } Numero_char[k][j]='\0'; cout<< endl <<endl ; for (i = 0; i <= k; i++){ Numero[i]= atof (Numero_char[i]); suma+=Numero[i]; } cout <<" Media= "<<(float) suma/(k+1)<<endl ; return 0; }
Olvide que era con cin:#include <iostream> #include <cstdio> #include <cstdlib> using namespace std; main(){ int i=0,j=0,k=0; float suma=0,Numero[100]={0}; cin>>Numero[i]; while (getchar ()!='\n'){ i++;cin>>Numero[i]; } cout<< endl <<endl ; for (j=0;j<=i;j++) suma+=Numero[j]; cout <<" Media= "<<(float) suma/(i+1)<<endl ; return 0; }
Saluditos!.
|
|
« Última modificación: 10 Febrero 2013, 16:56 pm por leosansan »
|
En línea
|
|
|
|
radix.2007
Desconectado
Mensajes: 2
|
Uff ¡¡ perfecto, funciona perfecto perfectísimo, mil gracias, lo daba como muy difícil pero veo que era más sencillo de lo que me parecia, entiendo entonces que después de introducir cada número se comprueba si se ha pulsado la tecla Enter, y si es así dejamos de leer números, mil gracias de nuevo, está perfecto, saludos.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
puedo reconocer la tecla enter como evento en textbox?
.NET (C#, VB.NET, ASP)
|
faralito
|
2
|
12,139
|
11 Diciembre 2008, 17:37 pm
por faralito
|
|
|
leer secuencia separada por espacios
Programación C/C++
|
pMV2ere
|
2
|
4,349
|
2 Diciembre 2012, 18:22 pm
por pMV2ere
|
|
|
tecla enter
Desarrollo Web
|
kakashi20
|
1
|
2,030
|
5 Septiembre 2013, 00:47 am
por 1mpuls0
|
|
|
Listar secuencia de años hasta encontrar año con cifra repetida
Programación C/C++
|
sora_ori
|
7
|
2,838
|
14 Marzo 2014, 04:19 am
por leosansan
|
|
|
[Python + tkinter] Ayuda con botón de una ventana y tecla enter
Scripting
|
darkweb64
|
3
|
6,493
|
13 Mayo 2015, 23:10 pm
por tincopasan
|
|