Ładny brzuch

Witam
Pobieram n-razy z klawiatury ciag liczb calkowitych i zapisuje je do tablicy jednowymiarowej typu int. W jaki sposob spradzic czy podany ciag liczb sklada sie tylko z liczb czy moze wystapily w nim tez jakies inne znaki?? :unsure:




Witam
Pobieram n-razy z klawiatury ciag liczb calkowitych i zapisuje je do tablicy jednowymiarowej typu int. W jaki sposob spradzic czy podany ciag liczb sklada sie tylko z liczb czy moze wystapily w nim tez jakies inne znaki??  :unsure:


Jak kto ci wpisze znak to do tablicy powdruje jego warto liczbowa, wic na dane z wejcia trzebaby dziaa jakim IsDigit'em. Ale ta funkcja jest chyba do charw, ktre mona przecie sprawdzi rcznie. Masz jaki zakres liczb, ktre pobierasz?


Jeeli tak to powiedzmy ze 5 znakw, jeeli chodzi o zakres wartoci to nie ma ograniczenia.



A jakby tak wczytywa kady znak funkcj bez transformacji czy jak to tam si nazywa czyli bez konkretnego typu i sprawdzanie czym ona jest??

Ja mam inn propozycj:

Domylam si, e zapisujesz do tablicy char...(czyli w sumie do acucha) - moesz te zrobi to za pomoc string...
Pobierz sobie tablic znakw ASCII z neta i wyklucz w swoim programie te, ktre s cyframi (od 48 do 57), pozostae to znaki...
Uytkownik T.Q. edytowa ten post 30 grudzie 2005, 21:57
char bufor[20];
scanf("%s",bufor);
int liczba = atoi(bufor);

jeeli kto wpisze tekst to funkcjia chyba zwraca 0 ale sprawd jeszcze dla pewnoci.

Witam
znalazlem troszeczke inny sposb spradzenia tylko, e nie dziaa w 100%. Gdy wpisze np literke k to wszystko jest ok; pojawia sie stosowny komunikat i prosi o ponowne wpisanie tego elemetu. Problem pojawia si w momencie, gdy wpisze np "5k"; wtedy rwnie wyskakuje komunikat o bdzie, ale pomija jeden element i prosi o wpisanie nastpnego. Moe kto wie o co chodzi?? Kod programu poniej:

#include <iostream.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>

main()
{
int tab[100],kwad[100],i,n;
char klaw;

e1:
clrscr();
cout<<"\n Wybierz jedna z opcji: \n";
cout<<" 1 - Obliczenia dla tablicy jednowymiarowej \n";
cout<<" 2 - Wyjscie z programu \n";

klaw=getch();
switch(klaw)
{
case '1':
clrscr();
cout<<"\n";
cout<<" Podaj liczbe elementow tablicy: ";
cin>>n; //czytanie n
cout<<"\n";
------------------------------------------------------------------------------------------
chodzi mi o ten fragment programu czyli czytanie elementw tablicy
------------------------------------------------------------------------------------------
for(i=1;i<=n;i++) //czytanie elementow tablicy
{
e3:
cout<<" Podaj "<<i<<" element tablicy: ";
if(!scanf("%d",&tab[i]))
{
cout<<" \n Podano zla wartosc!! \n\n";
fflush(stdin);
goto e3;

}

}
--------------------------------------------------------------------------------------------

cout<<"\n Elementy wprowadzonej tablicy: \n";
cout<<" ";
for(i=n;i>=1;i--)
cout<<tab[i]<<" ";
cout<<" \n";
cout<<"\n Elementy tablicy po przestawieniu: \n";
cout<<" ";
for(i=n;i>=1;i--)
cout<<tab[i]<<" ";
cout<<"\n"; //wypisuje elementy w odwrotnej kolejnoci
cout<<"\n Elementy tablicy po pomnozeniu przez -1 do potegi i+1: \n";
cout<<" ";
for(i=n;i>=1;i--)
{
tab[i]=tab[i]*pow(-1.0,i+1); //mnozy elementy obwroconej talbicy przez -1 do potegi i+1
cout<<tab[i]<<" ";
}
cout<<"\n" ;
cout<<"\n Elementy tablicy po podniesieniu do kwadratu i podstawieniu do nowej tablicy: \n";
cout<<" ";
for(i=n;i>=1;i--)
{
kwad[i]=tab[i]*tab[i]; //podnosi elementy odwroconej tablicy do kwadratu
cout<<kwad[i]<<" "; //i przypisuje do nowej tablicy
}
getch();
goto e1;
break;
case '2':
goto e2;
break;
}
getch();
e2:
system("EXIT");
return 0;
}

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •