Kezdőoldal » Számítástechnika » Programozás » C++-ban hogyan kell ezt: kérj...

C++-ban hogyan kell ezt: kérj be 1-10 között egy számot és irasd ki visszafele a négyzeteit?

Figyelt kérdés
2015. márc. 31. 18:59
1 2
 11/16 anonim ***** válasza:

Hibakezeléssel és könnyed használattal:


void SkipToInt()

{

if(cin.fail())

{

cin.clear();

for(char ch; cin >> ch;)

{

if(isdigit(ch))

{

cin.unget();

return;

}

}

}

throw runtime_error("no input");

}


int GetInt()

{

int n;

while(true)

{

if(cin >> n)

return n;

cout << "Ez nem szam, probald ujra!\n";

SkipToInt();

}

}


int GetInt(int low, int high)

{

while(true)

{

int n = GetInt();

if(low <= n && n <= high)

return n;

cout << "Ez nincs a min - max kozott\n";

}

}


int main()

{

cout << "Adj meg egy szamot 1 es 10 kozott: ";

int n = GetInt(1, 10);


return 0;

}

2015. márc. 31. 20:41
Hasznos számodra ez a válasz?
 12/16 SimkoL ***** válasza:

Nem kell túlspirázni, elég egy atoi() is, ezt sem biztos, hogy megérti. A kérdés 'színvonalához' illik írni a választ is, elkerülendő a későbbi magyaráz(kod)ást.


#include <cstdlib>

#include <iostream>


using namespace std;


int main(){

string s = "semmi";

int szam = 0;

while ((szam < 1) || (szam > 10)){

cout << "Kerek egy szamot 1 es 10 kozott: ";

cin >> s;

szam = atoi(s.c_str());

if ((szam == 0) && (s !="0")) cout << "Nem szam !\n";

else if ((szam < 1) || (szam > 10)) cout << "Hataron tul van !\n";

}

for (int i = szam; i >= 1; --i) cout << i * i << " ";

cout << endl;

system("PAUSE");

return 0;

}

2015. márc. 31. 21:51
Hasznos számodra ez a válasz?
 13/16 anonim ***** válasza:

#Simkol


A kérdéshez tökéletes az első válaszod is nem kell javítanod rajta. Én szemléltetés képen írtam ezt neki, nyilván nem érne el vele semmit ha lemásolná de egy kukkot sem értene. A kódban amit írtam azért nem atoi van mert kiszedi ezekből is a számot:


asd9

9asd

as9d

2015. márc. 31. 22:38
Hasznos számodra ez a válasz?
 14/16 anonim ***** válasza:

Itt egy kellően egyszerű, a main teleszemetelése nélkül:


#include <iostream>

#include <string>


using namespace std;


int GetInt()

{

string s;

while(cin >> s)

{

int n = atoi(s.c_str());

if(!(n == 0 && (s[0] != '0')))

return n;

cout << "Nem szam" << endl;

}

}


int GetInt(int low, int high)

{

while(true)

{

int n = GetInt();

if(low <= n && n <= high)

return n;

cout << n << " nincs " << low << " es " << high << " kozott" << endl;

}

}


int main()

{

cout << "Adj meg egy szamot 1 es 10 kozott: ";


int szam = GetInt(1,10);


return 0;

}

2015. márc. 31. 23:28
Hasznos számodra ez a válasz?
 15/16 iostream ***** válasza:

Sokkal viccesebb, ha ehelyett

for(i=x;i>0;i--)

ezt írod

for(i = x; i --> 0;)

2015. ápr. 1. 13:35
Hasznos számodra ez a válasz?
 16/16 anonim ***** válasza:

10 PRINT "IRJ BE EGY SZAMOT ";: INPUT N

20 IF N < 1 OR N > 10 THEN GO TO 10

30 FOR I = N TO 1 STEP - 1: PRINT I * I: NEXT I

2015. ápr. 2. 15:33
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!