- iPhone topik
- Vodafone mobilszolgáltatások
- Telekom mobilszolgáltatások
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Eleglide C1 - a középérték
- Milyen okostelefont vegyek?
- Android szakmai topik
- DIGI Mobil
- Android alkalmazások - szoftver kibeszélő topik
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
Hirdetés
-
Az NVIDIA szerint a partnereik prémium AI PC-ket kínálnak
ph Megkezdődött az NPU-k elleni hadjárat, de egy fontos részletet nem említ a cég.
-
VR játék lesz az Batman: Arkham Shadow (Meta Quest 3)
gp Egyelőre csak egy teaser trailert kaptunk a teljes leleplezésre a Summer Game Festen kerül sor.
-
Eleglide C1 - a középérték
ma Szintet lépett az Eleglide, az egyébként egész korrekt M2 után a C1 sokkal komfortosabb közlekedésre alkalmas.
Új hozzászólás Aktív témák
-
Iszusz
csendes tag
Sziasztok!
Egy olyan kérdésem lenne van egy feladat, amit nem tudok megoldani. A könyvben amiből van a feladat, még nem esett szó tömbökről, és függvényekről, se a length-ről. Szóval valószínűleg az nélkül is meg kellene tudni oldani ezt a feladatot. A kérdésem az lenne, hogy lehet?
A feladat a következő:
"Írjunk programot, amely egy beírt egész szám számjegyeit kiírja szövegesen(angolul).Azaz, ha például beírjuk a programnak, hogy 932, akkor kimenetként az jelenik meg, hogy
nine three twoNe felejtsük el zero-t írni, ha a felhasználó nullát ad meg! (Megjegyzés:ez nem egy könnyű feladat.) "
Én kb eddig jutottam el a feladat megoldásban a könyv előző fejezetei alapján.
#include<stdio.h>
int main()
{
int jegy,number;
int szamlalo;
printf("Kérem adjon meg egy számot\n");
scanf("%i",&number);do
{
jegy=number%10;
switch(jegy)
{
case 0:
printf("zero ");
break;
case 1:
printf("one ");
break;
case 2:
printf("two ");
break;
case 3:
printf("three ");
break;
case 4:
printf("four ");
break;
case 5:
printf("five ");
break;
case 6:
printf("six ");
break;
case 7:
printf("seven ");
break ;
case 8:
printf("eight ");
break;
case 9:
printf("nine ");
break;
default: printf("\n");
break;
}
number=number/10;}
while(number!=0);return 0;
}Átírtam volna a forráskódot a gépemen anno, de már nem értem hol rejlik a hiba és egyedül nem is fogom megtudni soha....
-
Gyuri16
senior tag
tehat a gond az, hogy forditva irja ki a szavakat. tobbfelekeppen meg lehet oldani tombok es a tobbi nelkul is. legegyszerubb talan az, ha a beolvasott szamot "megforditod" egy masik valtozoba (szamkent). tehat ezzel a modulo/oszto modszerrel egyesevel veszed a szamjegyeit a legkissebbtol, es hozzaadod egy masik valtozohoz (minden lepesben szorozni kell a valtozot 10-zel). ezen a szamon aztan futtathatod a mar megirt algoritmusod.
Nem vagyok egoista, csak uborkagyalu!
-
Korcsii
őstag
hmm... hmmm...
#include <stdio.h>
int main(void) {
char c;
printf("Adj meg egy szamot: ");
while ((c = getchar()) != '\n') {
switch (c) {
case '0': printf("zero"); break;
case '1': printf("one"); break;
case '2': printf("two"); break;
case '3': printf("three"); break;
case '4': printf("four "); break;
case '5': printf("five"); break;
case '6': printf("six"); break;
case '7': printf("seven"); break;
case '8': printf("eight"); break;
case '9': printf("nine"); break;
}
printf(" ");
}
return 0;
} -
Iszusz
csendes tag
Sziasztok!
Olvastam a válaszokat! Nagyon szépen köszönöm mindenkinek, aki írt nagyon sokat segítettek. Szerintem lesz még pár mások számára egyértelmű feladat, amit meg fogok kérdezni. Elég zöldfülű vagyok a programozáshoz még. :S Gyuri elméleti megoldása azért is tetszett, mert elgondolkodtató volt. Most meg is próbálom átvinni a gyakorlatba mindjárt.Átírtam volna a forráskódot a gépemen anno, de már nem értem hol rejlik a hiba és egyedül nem is fogom megtudni soha....
-
Iszusz
csendes tag
válasz Gyuri16 #2659 üzenetére
Sikerült megoldani a feladatot a leírásod alapján ilyen lett:
#include<stdio.h>int main()
{
int jegy,number;
int jegy2,szamlalo;printf("Kérem adjon meg egy számot\n");
scanf("%i",&szamlalo);
//SZAM MEGFORDITÁSA
number=0;
do{
jegy=szamlalo%10;
number=(number+jegy)*10;szamlalo=szamlalo/10;
}
while(szamlalo!=0);number=number/10;
//DÖNTÉSHOZOT TARTALMAZO DO-WHILE CIKLUS
do
{
jegy2=number%10;
switch(jegy2)
{
case 0:
printf("zero ");
break;
case 1:
printf("one ");
break;
case 2:
printf("two ");
break;
case 3:
printf("three ");
break;
case 4:
printf("four ");
break;
case 5:
printf("five ");
break;
case 6:
printf("six ");
break;
case 7:
printf("seven ");
break ;
case 8:
printf("eight ");
break;
case 9:
printf("nine ");
break;
default: printf("\n");
break;
}
number=number/10;}
while(number!=0);return 0; }
Korcsii megoldása mondjuk jóval áttekinthetőbb, viszont a könyv valószínűleg még csak hasonló megoldást várt el, mert még a getchar-ról se beszélt. Köszönöm még egyszer a válaszokatÁtírtam volna a forráskódot a gépemen anno, de már nem értem hol rejlik a hiba és egyedül nem is fogom megtudni soha....
-
Korcsii
őstag
getchar()-t sokszor inkább eltitkolják, mert ugyan az, mint a scanf("%c", &c); csak ha már ott csak egy betűt kell csak kicserélni, akkor ne tanítsanak új funkciót c++ rulz, ott csak >> operátor van, semmi más függvény
azért ami csúnya az én kódomban, hogy gyakorlatilag nem számot olvasol be, és kicsit bonyolult lenne, ha utána a számot még bármire is szeretnéd használni... viszont mivel a feladat csak ezt kérte, szerintem ez a legegyszerűbb megoldása
-
Jester01
veterán
válasz Korcsii #2664 üzenetére
c++ rulz, ott csak >> operátor van, semmi más függvény
Azért ezt ne hangoztasd kezdők előtt mert még elhiszik. Példának okáért van std::basic_istream::get() 6 verzióban és még kb ezermillió másik függvény.
Az operator>> különben sem mindenható:
#include <iostream>
#include <string>
using namespace std;
int main(int, char**)
{
string name;
cin >> name;
cout << name << endl;
return 0;
}
$ g++ -Wall test.cpp
$ echo "John Doe" | ./a.out
JohnItt például jól jön a get():
#include <iostream>
#include <sstream>
using namespace std;
int main(int, char**)
{
stringbuf name;
cin.get(name);
cout << name.str() << endl;
return 0;
}
$ g++ -Wall test.cpp
$ echo "John Doe" | ./a.out
John DoeJester
-
Korcsii
őstag
-
kingabo
őstag
válasz Jester01 #2668 üzenetére
Úgy rémlett, hogy korábban én a noskipws-t használtam erre a problémára, a leírásban nem találtam semmit ami miatt ne működne. Viszont baromira érdekel, hogy mivel keverem?
Akkor marad a cin.get vagy a cin.getline. (sztem megéri kiszedni a sorvége jelet is a pufferből) -
Jester01
veterán
válasz kingabo #2669 üzenetére
A lényeges kifejezés az "initial whitespace". Tehát ettől még ugyanúgy megáll az operator>> a szavak között, mert csak a beolvasás elején lévőket érinti. Ráadásul ahogy a link mondja is, bizonyos esetekben a nem eldobott bevezető szóköz rögtön le is állítja a feldolgozást:
#include <iostream>
#include <string>
using namespace std;
int main(int, char**)
{
string name;
cin >> noskipws >> name;
cout << '*' << name << '*' << endl;
cin >> name;
cout << '*' << name << '*' << endl;
cin >> name;
cout << '*' << name << '*' << endl;
return 0;
}
$ g++ -Wall test.cpp
$ echo "John Doe" | ./a.out
*John*
**
**Itt a feldolgozás a szóközön megállt, mert a noskipws miatt nem dobja el, viszont az operator>> ezen overloadja a szóköznél annak kiolvasása nélkül megáll. Szóval ez így sose megy tovább.
Jester
-
chabeee
tag
sziasztok
hibakeresésnél egyszerűen nem találom a hibát kérlek segítsetekprintf("6.: %s", (((a<b)&&(a>c)&&((b>c)||(c>b)))?"a and b" : ((b>a)&&(c>a)&&((b>c)||(c>b)))?"b and c" : ((c>a)&&(a>b)&&((c>a)||(a>c)))?"a and c"));
error message: ../main.c:44:140: error: expected ‘:’ before ‘)’ token
a feladat amúgy: 2 legnagyobb számot 3 változóból ki kell kaparni
[ Szerkesztve ]
-
Gyuri16
senior tag
válasz chabeee #2671 üzenetére
tobb a kerdojel mint a pontosvesszo. az utolso agban nem kell tesztelni, mar tudod a valaszt.
printf("6.: %s", (((a<b)&&(a>c)&&((b>c)||(c>b)))? "a and b" :
((b>a)&&(c>a)&&((b>c)||(c>b)))
?
"b and c" : "a and c"));mod: mindegy, -Zeratul- megoldasa szebb..
[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
chabeee
tag
köszi
-
Iszusz
csendes tag
Sziasztok!
Újra itt vagyok egy újabb kérdéssel.Eclipset használok és kiíratásnál van egy kis problémám.
A feladat mondjuk, ez kérjen be egy számot majd írassa ki.
A helyes kimenet pl ez lenne:Kérem a számot! 2
A szám 2De nekem mindig előbb bekér minden adatot a gép utána irja ki a szövegeket.
2
Kérem a számot!
A szám 2Erre is volt egy utasítás ha jól emlékszek anno amivel ki lehetet ezt a problémát küszöbölni, csak sajna már nem emlékszek rá, valaki el tudná nekem magyarázni újra miért csinálja ezt a fordító...?
Átírtam volna a forráskódot a gépemen anno, de már nem értem hol rejlik a hiba és egyedül nem is fogom megtudni soha....
-
Iszusz
csendes tag
válasz proof88 #2676 üzenetére
oké küldök példát ha úgy érthetőbb mi a bajom
#include<stdio.h>
int main(){
int szam;
printf("Kérem a számot\n");
scanf("%d", &szam);
printf("A szam %d", szam);
return 0;
}[ Szerkesztve ]
Átírtam volna a forráskódot a gépemen anno, de már nem értem hol rejlik a hiba és egyedül nem is fogom megtudni soha....
-
proof88
addikt
az a helyzet hogy szerintem az első printf() után még bufferben tartja a szöveget, és a valós kiírás csak a main() függvény végén történik meg. Pedig van sorvége jel az első szöveged után. Próbáld meg azt, hogy az első printf() után fflush(stdin); ez elvileg kényszeríti hogy a bufferből a megfelelő helyre kerüljön a szöveg.
-
Iszusz
csendes tag
Hát végülis igy is tudom használni csak fura, és nem igazán értem miért nem müködik jól.
Átírtam volna a forráskódot a gépemen anno, de már nem értem hol rejlik a hiba és egyedül nem is fogom megtudni soha....
-
chabeee
tag
az a baj hidd el, én eclipseben "tanultam" meg programozni, és kipróbáltam mind kettőt, mingw forditót használsz? mert elvileg annál fordul elő.
amúgy egy jó ötlet: csinálj egy 20gb-os particiót arra dobj fel az új ubuntut, tökéletesen működik alatta, és felhasználó barát is -
kispx
addikt
válasz Retekegér #2688 üzenetére
Inkább Code:: Blocks. A Dev-C++ kicsit bugos, és ha jól látom akkor már fejlesztik tovább.
[ Szerkesztve ]
-
proof88
addikt
igen én még láttam a Code:locks-ot is gyerekkorában, az is elég fapados volt, csak hát mivel nem fejlesztik már a DevCpp-t, a Blocks lehagyta szépen.
Egyébként ott van még a Visual C++ Express Edition is. Legális, ingyenes, nagyon jó IDE. Meg egyébként a komplett Visual Studio-t letöltheted legálisan, ha felsőoktatásban vagy hallgató. -
ArchElf
addikt
válasz proof88 #2692 üzenetére
Meg egyébként a komplett Visual Studio-t letöltheted legálisan, ha felsőoktatásban vagy hallgató.
- Ha az iskolád bent van az MSDNAA-ban
- Ha van az adott félévben informatikai tárgyad (nem info szakon levőknél ez nem egyértelmű)AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
jonaska
csendes tag
Halli mindenkinek ! Programozásra keresnék megfelellő embert ( embereket ) egy beszélgetés keretein bellűl vagy akár személyes találkozon a részleteket megbeszélnénk ! Tudom h ez nem egy állás hirdető oldal de ott senkit nem érdekelnek az ien jelegű támák :S szoval irj egy emailt otherman@citromail.hu
-
Iszusz
csendes tag
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen TV-t vegyek?
- Gördeszka topic
- Az NVIDIA szerint a partnereik prémium AI PC-ket kínálnak
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Xbox Series X|S
- Anglia - élmények, tapasztalatok
- Konzolokról KULTURÁLT módon
- BestBuy ruhás topik
- Milyen billentyűzetet vegyek?
- 3D nyomtatás
- További aktív témák...