C nyelvben szeretnék egy kis segítséget kérni csináltam egy olyan programot ami be írok egy három jegyű számot ki kéne írnia betűvel 555=otszazotvenot helyette ottizenegy :/?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int szam;
int a,b;
int c,d;
int e;
printf("irj be egy 3 jegyu szamot\n");
scanf("%d", &szam);
a = szam / 100;
b = szam % 10;
c = szam / 10;
d = szam % 100;
e = szam / 1;
switch(a)
{
case 1: printf("szaz");break;
case 2: printf("ketszaz");break;
case 3: printf("haromszaz");break;
case 4: printf("negyszaz");break;
case 5: printf("otszaz");break;
case 6: printf("hatszaz");break;
case 7: printf("hetszaz");break;
case 8: printf("nyolcszaz");break;
case 9: printf("kilencszaz");break;
}
if((a==1)&&(b==0))
{
printf("tíz");
}
else if((a==2)&&(b==0))
{
printf("húsz");
}
else
{
switch(b || c)
{
case 1: printf("tizen");break;
case 2: printf("huszon");break;
case 3: printf("harminc");break;
case 4: printf("negyven");break;
case 5: printf("otven");break;
case 6: printf("hatvan");break;
case 7: printf("hetven");break;
case 8: printf("nyolcvan");break;
case 9: printf("kilencven");break;
}
switch(d || e)
{
case 1: printf("egy");break;
case 2: printf("ketto");break;
case 3: printf("harom");break;
case 4: printf("negy");break;
case 5: printf("ot");break;
case 6: printf("hat");break;
case 7: printf("het");break;
case 8: printf("nyolc");break;
case 9: printf("kilenc");break;
}
}
return (EXIT_SUCCESS);
}
A múltkor rtm ide valakinek Pascal-ban egy hasonló, igaz itt sorszámról volt szó, lehet, hogy segít:
program sorszam;
function sorsz( const i : word) : string;
var egyes, tizes, szazas : byte;
s_Egyes, s_Tizes, s_Szazas : string;
begin
egyes := i mod 10;
tizes := i mod 100 div 10;
szazas := i div 100;
case szazas of
0: s_Szazas := '';
1: s_Szazas := 'száz';
2: s_Szazas := 'kétszáz';
3: s_Szazas := 'háromszáz';
4: s_Szazas := 'négyszáz';
5: s_Szazas := 'ötszáz';
6: s_Szazas := 'hatszáz';
7: s_Szazas := 'hétszáz';
8: s_Szazas := 'nyolcszáz';
9: s_Szazas := 'kilencszáz';
end;
case tizes of
0: s_Tizes := '';
1: s_Tizes := 'tizen';
2: s_Tizes := 'huszon';
3: s_Tizes := 'harminc';
4: s_Tizes := 'negyven';
5: s_Tizes := 'ötven';
6: s_Tizes := 'hatvan';
7: s_Tizes := 'hetven';
8: s_Tizes := 'nyolcvan';
9: s_Tizes := 'kilencven';
end;
case egyes of
0: s_Egyes := '';
1: s_Egyes := 'egyedik';
2: s_Egyes := 'kettedik';
3: s_Egyes := 'harmadik';
4: s_Egyes := 'negyedik';
5: s_Egyes := 'ötödik';
6: s_Egyes := 'hatodik';
7: s_Egyes := 'hetedik';
8: s_Egyes := 'nyolcadik';
9: s_Egyes := 'kilencedik';
end;
if i mod 100 = 0 then s_Szazas := s_Szazas+'adik';
if i < 10 then
begin
case egyes of
1: s_Egyes := 'első';
2: s_Egyes := 'második';
end;
end;
if (i mod 10) = 0 then
begin
case tizes of
1: s_Tizes := 'tizedik';
2: s_Tizes := 'huszadik';
3,6,8: s_Tizes := s_Tizes + 'adik';
4,5,7,9: s_Tizes := s_Tizes + 'edik';
end;
end;
sorsz := s_Szazas + s_Tizes + s_Egyes;
end;
begin
Write(sorsz(11));
end.
Nem értem minek kell ennyi változó meg minek osztod le a változókba
Egyszerűbb lenne az egész egy while ciklusba ...
while(szam>0)
szamjegy=szam%10
//Itt vizsgálod
szam/10
szamjegy=szam%10
//Megint vizsgálod egészen a harmadikig
Aztán ha 1 utasítás van, akkor nem kell kapcsos záró jel. Zavaró nagyon.
azért ír mindenhova egyet, mert ez:
(b || c), egy logikai kifejezés, ami vagy 0 vagy 1
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
int szam, a;
cout<<"Adja meg a 3 jegyu szamot: "; cin>>szam;
cout<<endl;
while(szam>0){
a=szam%10;
switch(a)
{
case 1: cout<<"szaz";break;
case 2: cout<<"ketszaz";break;
case 3: cout<<"haromszaz";break;
case 4: cout<<"negyszaz";break;
case 5: cout<<"otszaz";break;
case 6: cout<<"hatszaz";break;
case 7: cout<<"hetszaz";break;
case 8: cout<<"nyolcszaz";break;
case 9: cout<<"kilencszaz";break;
}
szam=szam/10;
a=szam%10;
if((szam/10)%10==0 && a==1)
cout<<"tíz";
else
if((szam/10)%10==0 && a==2)
cout<<"húsz";
else
switch(a)
{
case 1: cout<<"tizen";break;
case 2: cout<<"huszon";break;
case 3: cout<<"harminc";break;
case 4: cout<<"negyven";break;
case 5: cout<<"otven";break;
case 6: cout<<"hatvan";break;
case 7: cout<<"hetven";break;
case 8: cout<<"nyolcvan";break;
case 9: cout<<"kilencven";break;
}
szam=szam/10;
a=szam%10;
switch(a)
{
case 1: cout<<"egy";break;
case 2: cout<<"ketto";break;
case 3: cout<<"harom";break;
case 4: cout<<"negy";break;
case 5: cout<<"ot";break;
case 6: cout<<"hat";break;
case 7: cout<<"het";break;
case 8: cout<<"nyolc";break;
case 9: cout<<"kilenc";break;
}
szam=szam/10;
}
return 0;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!