Buenas gente, alguien que me saque de dudas.
Publicado por Mario (1 intervención) el 10/12/2021 17:40:18
Tengo que realizar un programa en C++ que permita capturar los elementos (N definido por el usuario) de un arreglo unidimensional ingresados por el usuario que contenga solo números enteros; de lo contrario rechazar el elemento y pedir un nuevo intento.
Por el momento mi codigo medio funciona hasta cierto punto...Cuando el numero es decimal funciona, pero al introducir una letra entra en un bucle infinito que no se como solucionar, si alguien pudiera ayudarme lo agradeceria... Este es el codigo que tengo:
Por el momento mi codigo medio funciona hasta cierto punto...Cuando el numero es decimal funciona, pero al introducir una letra entra en un bucle infinito que no se como solucionar, si alguien pudiera ayudarme lo agradeceria... Este es el codigo que tengo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include<iostream>
#include<stdlib.h>
using namespace std;
// Prototipos de funciones
void pedirDatos_comprobar();
bool esNumero(int);
bool esEntero(float);
//Variables globales
float vector[100], n ;
int main(){
pedirDatos_comprobar();
system("pause");
return 0;
}
//FUNCIONES
void pedirDatos_comprobar(){
cout<<"Diga el numero de elementos del vector: ";cin>>n;
for (int i=0; i<n;i++){
do {
cout<<i+1<<".- Diga un numero: ";
cin>>vector[i];
if((esNumero(vector[i]) && esEntero(vector[i]) ) == true){
break;
}else {
cout<<" ----->> Por favor introduzca un valor entero\n";
fflush(stdin);
}
}while(true);
}
}
bool esNumero(int num){
bool b = true;
if (num==false){
b = false;
}
return b;
}
bool esEntero(float decimal){
bool b = true;
int entero;
entero = decimal;
if ((decimal - entero)!= 0){
b = false;
}
return b;
}
Valora esta pregunta
0