Cout << 3*char – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Cout << 3*char – C / C++ – Fórum – Programujte.comCout << 3*char – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Kéfas0
Návštěvník
27. 4. 2013   #1
-
0
-

Čaute!

Na hodine "informatiky"(mali sme suplovanú hodinu) sme dostali za úlohu napísať na papier zdroják za max. 8 minút.  
Úloha:

Naprogramujte program, ktorý požiada užívateľa o 1 znak a potom tento znak počítač vypíše na obrazovku 3 krát.

Môj zdroják som naprogramoval doma:

#include <iostream>
using namespace std;
int main()
{
	char z[1];
	cout <<"Napíšte 1 znak:\nZnak: ";
	cin >> z[0];
	cout << 3*z[0];
	return 0;
}

Neviem prečo sa mi vypíše 315, keď to malo vypísať iii.
Takže kde ja asi chyba? Char sme ešte nemali.Len sme ho spomenuli pri dátových typov.

Za každú radu ďakujem!

PS: Toto bolo prvý krát, kedy sme mali niečo naprogramovať.  
 


Nahlásit jako SPAM
IP: 87.239.56.–
Reklama
Reklama
vitamin+8
Grafoman
27. 4. 2013   #2
-
+1
-
Zajímavé

Ak nasobis integer s charom tak vysledok je integer:

Znak 'i' ma hodnotu 105, ak ho vynasobis 3 tak mas 315.

Ak si chcel znak vypisat 3x tak si mal spravyt nieco taketo:

std::cout << z[0] << z[0] << z[0]; 

Preco si vlastne pouzil jednoprvkove pole?

Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
metthal
~ Anonymní uživatel
27 příspěvků
27. 4. 2013   #3
-
+1
-
Zajímavé

1. To pole tam vobec nepotrebujes. Staci ti "char z;"

2. Vsetko je v pamati len ako postupnost 0 a 1, takze to znamena ze aj znaky su reprezentovane ako cisla (ASCII hodnoty znakov), takze ASCII hodnota znaku 'i' je 105, ty si to vynasobil 3 takze 315. Ak chces nieco vypisat 3 krat tak bud 3 krat pouzi operator << na cout alebo ked presne nevies kolko krat sa budes opakovat, alebo sa budes opakovat vela krat, tak pouzi cyklus.

Nahlásit jako SPAM
IP: 2001:67c:1220:c1a2:cd:cad...–
Kéfas0
Návštěvník
27. 4. 2013   #4
-
0
-

#2 vitamin
Preco si vlastne pouzil jednoprvkove pole?

Na tomto webe som našiel C++ tutorial, tak podľa toho som to spravil tak.
Tak som si to zapamätal a napísal som to ako jednoprvkové pole.

Píšem bez rozmýšlania, ponáhľam sa.

Nahlásit jako SPAM
IP: 87.239.56.–
Kéfas0
Návštěvník
27. 4. 2013   #5
-
0
-

#3 metthal

Cykly sa budeme učiť asi na konci roka.

Obidvom ďakujem za rady!

Nahlásit jako SPAM
IP: 87.239.56.–
vitamin+8
Grafoman
27. 4. 2013   #6
-
0
-

#4 Kéfas
Píšem bez rozmýšlania, ponáhľam sa.

To vecsinou konci zle :)

Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Řešení
ingiraxo+15
Grafoman
27. 4. 2013   #7
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

#1 Kéfas
 

int main()
{
    cout << "Zadej znak: ";

    char c;
    cin >> c;
    cout << string(3, c);

    return 0;
}
Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Kéfas0
Návštěvník
27. 4. 2013   #8
-
0
-

#6 vitamin

To vecsinou konci zle :)

Robil som návrh plošáka a tam som sa tiež sekol.
Keďže ešte neviem dobre spájkovať, tak ani moja siréna nefunguje, ale iba bzučí ako keď  nemáš signál na rádiu.

#7 ingiraxo

Celkom zaujímavé!
Toto by ma nenapadlo.

Nahlásit jako SPAM
IP: 87.239.56.–
MachiavelliCz
~ Anonymní uživatel
2 příspěvky
2. 5. 2013   #9
-
0
-

Ta těžší a zároveň podle mě lepší varianta: 

#include <iostream>

int main () {

	char znak;

	std::cout << "Zapiste prosim nejaky znak: ";
	std::cin >> znak;

	std::cout << "Vypis znaku 3x << std::endl;
	for(int i = 1; i >= 3; i++) {
		std::cout << znak;
	}

	return 0;
}
	
		

A ta lehčí:

#include <iostream>

int main () {

	char znak;

	std::cout << "Zapiste prosim nejaky znak: ";
	std::cin >> znak;

	std::cout << "Vypis znaku 3x << std::endl;
	std::cout << znak << znak << znak;

	return 0;
}
Nahlásit jako SPAM
IP: 88.101.89.–
vitamin+8
Grafoman
2. 5. 2013   #10
-
0
-

#9 MachiavelliCz
Ta "tazsia" cast je zle. 

Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
ANV+1
Návštěvník
2. 5. 2013   #11
-
0
-

#10 vitamin
Bohužiaľ, má zle obe varianty..

Nahlásit jako SPAM
IP: 62.197.220.–
"Bez činu zostávajú aj tie najkrajšie myšlienky bezcenné."
M.K. Gándhí
Kéfas0
Návštěvník
3. 5. 2013   #12
-
0
-

Asi som nepísal, že sme to mohli napísať maximálne na 8 riadkov !


Nahlásit jako SPAM
IP: 87.239.56.–
vitamin+8
Grafoman
3. 5. 2013   #13
-
0
-

#12 Kéfas
Neni problem, stacia 2  

#include <iostream> 
int main(){std::cout << "Zadej znak: ";char c;std::cin >> c;std::cout << c << c << c;return 0;}
Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Kéfas0
Návštěvník
3. 5. 2013   #14
-
0
-

#13 vitamin

Ešte jedna podmienka:
- Na jednom riadku môže byť iba 1 príkaz!

EDIT: ingiraxo to má najlepšie!
EDIT_2: vitamin, ja som to tiež takto myslel, ale chcel som si to uľahčiť a skrátiť, tak preto som napísal namiesto tohto  

std::cout << c << c << c;

toto:

cout << 3*z[0];
Nahlásit jako SPAM
IP: 87.239.56.–
vitamin+8
Grafoman
3. 5. 2013   #15
-
0
-

#14 Kéfas

Co to znamena 1 prikz?

Ak si myslel jeden vyraz (expression statement)  tak sa to stale da   :

#include <iostream> 
int main(){return std::cout << "Zadej znak: " << std::string(3, std::cin.get()), 0;}
Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Kéfas0
Návštěvník
3. 5. 2013   #16
-
0
-

#15 vitamin
No príkaz ako napr. return 0; alebo cout << ...;

Nahlásit jako SPAM
IP: 87.239.56.–
ingiraxo+15
Grafoman
3. 5. 2013   #17
-
+1
-
Zajímavé

koukám, že se nám tady rozjela soutež o nejkratší zápis =D

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Aleš
~ Anonymní uživatel
98 příspěvků
7. 5. 2013   #18
-
0
-

#1 Kéfas
char nesmíš násobit, pokud ho chceš vypsat třeba 3x musíš přes cyklus :-)

Nahlásit jako SPAM
IP: 95.143.132.–
voty+1
Návštěvník
7. 5. 2013   #19
-
0
-

#16 Kéfas
Jazyk C++ IMHO nic takového jako příkaz nezná. Viz norma jazyka C++. Máme tu statement, máme tu expression.

Resp. C++ zná pojem "command processor", kterému lze předávat "příkazy" pomocí volání int system(const char *string), ale touto cestou se zadávající asi vydat nechtěl :)

Nahlásit jako SPAM
IP: 109.239.71.–
Jednu rozbil a tu druhou ztratil.
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, 233 hostů

Podobná vlákna

Cout — založil sexmachina

Problém s cout — založil Erik

Printf vs. cout — založil volnaduse

Std::cout problém — založil Zelenáč

Moderátoři diskuze

 

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