Hirdetés
- GoodSpeed: Te hány éves vagy?
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Geri Bátyó: Agglegénykonyha különkiadás – Bors
- Klaus Duran: Minden drágul. Vajon a fizetések 2026-ban követi minimálisan?
- weiss: Autó költségek
- Cifu: Űrhajózás 2025 - Összefoglaló írás
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
Új hozzászólás Aktív témák
-
Iolé
csendes tag
Sziasztok!
Szeretném a segítségeteket kérni! Lenne egy program, amit nem egészen értek, főleg utolsó rész nem tiszta. Esetleg valaki tudna egy kis kommentet írni hozzá, hogy hogyan működik, meg mikor mit csinál, nagyon fontos lenne!
Ez volta feladat: A parancs a parancs sorban egy decimális számot (vagy decimális számokszóközökkel elválasztott sorozatát) vár(ja), amely(ek)nek kiírja római
szám megfelelőjét az stdout-ra.
Hibásan megadott parancs esetén a programnak rövid diagnosztikai
üzenetben informálnia kell a felhasználót arról, hogy a parancsot
hogyan kell használni. A diagnosztikai üzenetet az stderr-re kell
küldeni.
És a program:
#include <stdio.h>int main(argc, argv)
int argc;
char *argv[];
{
int i = 0, x=0;
int dec;
char rom[50];
if(argc == 1){
fprintf(stderr, "Hianyzik a parameter!");
exit( 1 );
}for(x=1;x<argc;x++){
if(egesze(argv[x])){
dec = atoi(argv[x]);
}else{
fprintf(stderr, "A parameterlistaban nem megfelelo az egyik ertek!");
exit( 1 );
}while(dec>=1000){
dec -= 1000;
rom[i] = 'M';
i++;
}
if (dec>=900){
dec-=900;
rom[i] = 'C';
i++;
rom[i] = 'M';
i++;
}
if(dec>=500){
dec -= 500;
rom[i] = 'D';
i++;
}
if (dec>=400){
dec -= 400;
rom[i] = 'C';
i++;
rom[i] = 'D';
i++;
}
while(dec>=100){
dec = dec-100;
rom[i] = 'C';
i++;
}
if(dec>=90){
dec -= 90;
rom[i] = 'X';
i++;
rom[i] = 'C';
i++;
}
if(dec>=50){
dec -= 50;
rom[i] = 'L';
i++;
}
if(dec>=40){
dec -= 40;
rom[i] = 'X';
i++;
rom[i] = 'L';
i++;
}
while(dec>=10){
dec -= 10;
rom[i] ='X';
i++;
}
if(dec == 9){
rom[i] = 'I';
i++;
rom[i] = 'X';
i++;
}
else{
if(dec >= 5){
dec -= 5;
rom[i] = 'V';
i++;
}
if(dec == 4){
rom[i] = 'I';
i++;
rom[i] = 'V';
i++;
}
else{
while(dec > 0){
dec -= 1;
rom[i] = 'I';
i++;
}
}
}
rom[i]='\0';
printf(" %s", rom);
}
exit(0);
}int egesze(s)
char *s[];
{
int i=0, kezd;
while (s[i]==' ' || s[i]=='\n' || s[i]=='\t')++i;
if(s[i]=='+' || s[i]=='-')++i;
kezd=i;
while(s[i]>='0' && s[i]<='9')++i;
if(i==kezd || s[i]!=' ' && s[i]!='\t' && s[i]!='\n' && s [i]!=0) return 0;
else return 1;
}int atoi(s)
char s[];
{
int i, n;
n = 0;
for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i)
n = 10 * n + (s[i] - '0');
return n;
}
Ú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!
- Merevlemezek megbízhatósága, élettartama
- Kerti grill és bográcsozó házilag (BBQ, tervek, ötletek, receptek)
- Mini-ITX
- EAFC 26
- Kormányok / autós szimulátorok topikja
- Linux kezdőknek
- HiFi műszaki szemmel - sztereó hangrendszerek
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Gumi és felni topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- További aktív témák...
- TP-Link TL-SG2218 16 x Gigabit Lan + 2 SFP Alza gari
- Xiaomi Redmi Note 14 256GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A01 Core 2 SIM kártya helllyel rendelkező mobiltelefon.
- Samsung Galaxy A04 64GB, Kártyafüggetlen, 1 Év Garanciával
- MSI GT 710 1GD3H Low Profile DDR3 1 GB/64 bit Videokártya
- Azonnali kézbesítés az év bármely pillanatában
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Xiaomi Redmi A5 64GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! Samsung Galaxy S23/Samsung Galaxy S23+/Samsung Galaxy S23 Ultra
- Thermal Grizzly Aeronaut paszta 3,9g /BONTATLAN/Több darab/Számlával/
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest

