Witam, jestem początkującym i mam problem z częścią kodu, polegającą na zabezpieczeniu przed wpisaniem innych znaków niż liczba, szukałem w internecie rozwiązań, ale żadne z nich nie działa, za każdym razem po wpisaniu litery program odpowiada wyświetleniem kilku tysięcy wierszy, w których wszystkie wartości przyjmują 0:
Witaj
Wprowadz kolejny elemnt ciagu
d
Liczba numer 1 Jest rowna 0 a jej kwadrat wynosi 0
Wprowadz kolejny elemnt ciagu
Liczba numer 2 Jest rowna 0 a jej kwadrat wynosi 0
Wprowadz kolejny elemnt ciagu
Liczba numer 3 Jest rowna 0 a jej kwadrat wynosi 0
Wprowadz kolejny elemnt ciagu
Liczba numer 4 Jest rowna 0 a jej kwadrat wynosi 0
Czy ma ktoś może pomysł jak można to zrobić? Poniżej zamieszczam kod, fragment o którym mówię zaznaczyłem znakami ///
Program ma za zadanie wczytywać ciąg liczb rzeczywistych, dopóki nie zostanie wczytana liczba ujemna i wyświetlać dla każdej wartości numer porządkowy, wartość i kwadrat wartości.
#include <iostream>
#include <stdio.h>
#include <ctype.h>
void Wprowadzanie ();
using namespace std;
int nr;
float a, b;
void
Wprowadzanie ()
{
cout << "Wprowadz kolejny elemnt ciagu\n";
cin >> a;
if (isalpha (a)!=0) /// isalpha zwraca 0 jesli to nie alfabet
{ ///
cout << "litera"; ///
a=0; ///
Wprowadzanie (); ///
}
if (a<0)
{
cout << "Wprowadzona liczba jest ujemna, koniec programu";
return;
}
if (a>=0)
{
nr=nr+1;
b=a*a;
cout << "Liczba numer " << nr << " Jest rowna " << a << " a jej kwadrat wynosi " << b <<"\n";
Wprowadzanie ();
}
}
int
main ()
{
nr=0;
cout << "Witaj\n";
Wprowadzanie ();
return 0;
}