Cctype – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Cctype – C / C++ – Fórum – Programujte.comCctype – C / C++ – Fórum – Programujte.com

 

Redby0
Návštěvník
30. 9. 2008   #1
-
0
-

Ahoj, nějak se prokousovám učením c++ a nějak mi to asi neleze do hlavy. Používám knihu Mistrovství v c++ a jsem u šesté lekce a zasekl jsem se na programátorskejch cvičeních. Je to úkol kde mám udělat pole typu double o délce 10 hodnot, což by bylo v pohodě a pak se do něj mají zadat hodnoty a zadávání skončí při zadání nenumerického znaku. No a to mi nějak nejde. Mám asi nějakej takovejto kod:

#include <iostream>

#include <cctype>
using namespace std;
const int polesize = 10;

int main()
{

double polespace[polesize];
int a = 0;
cout << "Zadejte po sobe 10 desetinych cisel: \n";
cin >> polespace[a];
if ( isdigit(polespace[a]))
{
a++;
cin >> polespace[a];

}


cout << "Prumer zadanych hodnot je: ";



Asi je to nějaká hrozná blbost, ale prostě ne a ne na to přijít. Díky za rady

Nahlásit jako SPAM
IP: 212.96.168.–
KIIV
~ Moderátor
+43
God of flame
30. 9. 2008   #2
-
0
-

a jak chces testovat double na to jestli je to isdigit? to je funkce pro znaky...
pak se to ma urcite nacitat pomoci cyklu..

Nahlásit jako SPAM
IP: 80.250.27.–
Program vždy dělá to co naprogramujete, ne to co chcete...
cecilconrad
~ Anonymní uživatel
30 příspěvků
30. 9. 2008   #3
-
0
-

//6_2.cpp -- Napiste program, ktery nacte az 10 hodnot do pole typu double. Tento program by mel ukoncit vstup po zadani nenumericke hodnoty. Dale by mel vypsat zpravu o prumeru zadanych cisel a kolik cisel v poli ma vetsi hodnotu nez prumer.

#include <iostream>
using namespace std;
int main()
{
const int MAX = 10;

double pole[MAX];
int i = 0;

while (i < MAX && cin >> pole[i])
i++;

double soucet = 0.0;

for (int y = 0; y < i; y++)
soucet += pole[y];

int vetsi = 0;

for (int x = 0; x < i; x++)
{
if ((soucet / i) > pole[x])
vetsi++;
}

cout << "Prumer cisel je " << soucet / i << " a " << vetsi << " cisla jsou vetsi nez prumer.\n";
return 0;
}

Nahlásit jako SPAM
IP: 217.112.163.–
Redby0
Návštěvník
30. 9. 2008   #4
-
0
-

To cecilconrad : Jo to je přesně ono. Dají se někde sehnat vyřešený cvičení ať pořád nemusím otravovat a když nebudu vědět tak to zkouknout? Díky

Nahlásit jako SPAM
IP: 212.96.168.–
KIIV
~ Moderátor
+43
God of flame
30. 9. 2008   #5
-
0
-

To cecilconrad : a proc mu to davas vyresene? pak na to nemuze prijit sam...

Nahlásit jako SPAM
IP: 80.250.27.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Nemo
~ Anonymní uživatel
31 příspěvků
30. 9. 2008   #6
-
0
-

If není cyklus ale podmínka.Takhle vlastne jenom vyzkoušíš jestli jsi zadal číslo a pokud ano tak se tě to zeptá na druhý číslo v poli a to je všechno. Jestli jsem to správně pochopil tak by to mělo být spíš takhle:



#include<iostream>
#include<cctype>
#include<stdlib.h>
using namespace std;

const int velikost_pole = 10; //nastavíme velikost

int main(int argc,char *argv[])
{
double polespace[velikost_pole];
int a=0;
do
{

cout<<"zadej "<<a+1<<". cislo: ";//vyžádáme na uživateli další číslo
cin>> polespace[a];//uložíme vstup do pole
a++;
}while((isdigit(polespace[a]))||(a<velikost_pole));/*opakujeme dokud zadaná hodnota není číslem nebo není větší než velikost pole*/

system("PAUSE");
return 0;
}

Nahlásit jako SPAM
IP: 85.71.98.–
Nemo
~ Anonymní uživatel
31 příspěvků
30. 9. 2008   #7
-
0
-

hmm koukam ze pozde :smile1:

Nahlásit jako SPAM
IP: 85.71.98.–
Nemo
~ Anonymní uživatel
31 příspěvků
30. 9. 2008   #8
-
0
-

A blbě :smile13: :smile10:

Nahlásit jako SPAM
IP: 85.71.98.–
cecilconrad
~ Anonymní uživatel
30 příspěvků
30. 9. 2008   #9
-
0
-

To KIIV : Mas pravdu, kdyby to resil sam bylo by to lepsi, ja uznavam, ze to byla kravina.
To Redby : Nevim o tom, ja si to resim sam.

Nahlásit jako SPAM
IP: 217.112.163.–
KIIV
~ Moderátor
+43
God of flame
30. 9. 2008   #10
-
0
-

To cecilconrad : no aspon tudle vec sem se kdyz sem delal ucitele naucil :D

Nahlásit jako SPAM
IP: 80.250.27.–
Program vždy dělá to co naprogramujete, ne to co chcete...
30. 9. 2008   #11
-
0
-

Mám taky mistrovství v c++, takže vím, jak přesně to má být :-).
Jde o to, že stačí mít ve while v podmínce (cin >> i) (kde i je int), protože když zadá nenumerickou hodnotu, cin >> i bude false (říkalo se to v té lekci). Pak stačí jenom dát cin.clear(); a while (cin.get()!='\n') break;.

Nahlásit jako SPAM
IP: 83.240.78.–
Podpis: Do podpisu nelze vložit obrázky ani HTML kód. Je podporován nový řádek tagem
.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Podobná vlákna

Cctype — založil Radike

&lt;cctype&gt; — založil Hlavinka

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý