- MIUI / HyperOS topik
- Apple iPhone Air - almacsutka
- iPhone topik
- Képeken a Huawei új Watch GT 6 órái
- Nagyon különleges lesz a Realme GT 8 Pro
- Hetekig bírják töltő nélkül a Huawei sportórái
- Xiaomi 15 - kicsi telefon nagy energiával
- Ezzel a mobillal készülhet a 2026-os MWC-re a HMD
- Samsung Galaxy S23 Ultra - non plus ultra
- Android szakmai topik
Új hozzászólás Aktív témák
-
EQMontoya
veterán
válasz
#36268800 #5618 üzenetére
Írjsz egy függvényt, ami megmondja egy char-ról, hogy magánhangzó-e:
#include <ctype.h>
#include <stdio.h>
static char * maganhangzok = "aeiou";
int maganhangzo(char c)
{
int i = 0;
for(; i < strlen(maganhangzok); ++i)
{
if(maganhangzok[i] == tolower(c)) return 1;
}
return 0;
}Ha ez megvan, akkor az eredeti tömbbön végigfutsz ezzel, és megnézed, hogy mennyi magánhangzód van.
Ezt követően azt szétszeded két tömbre, amit aztán használsz.
Utána pedig a feltöltésnél karbantartasz két indexet, és azokat lépteted annak függvényében, hogy a ciklusváltozód páros vagy páratlan.int i=0;
int msh_idx = 0;
int mgh_idx = 0;
for(;i<celtomb_hossza -1 ; ++i)
{
if(i%2 == 0)
{
celtomb[i] = msh_tomb[msh_idx];
msh_idx = (msh_idx + 1) % msh_tomb_hossza; //strlen?
}
else
{
celtomb[i] = mgh_tomb[mgh_idx];
mgh_idx = (mgh_idx + 1) % mgh_tomb_hossza; //strlen?
}
}
//lezaro nulla ne maradjon le! :) -
dobragab
addikt
válasz
#36268800 #5614 üzenetére
Vagy legalább a Programkód formázást így.
void sztring (char*, char*);
int main()
{
char str1[]="AEBCD", str2[37]= {0};
sztring (str1,str2);
return 0;
}
void sztring (char *p1, char *p2)
{
int i=0;
while (*p1)
{
if (*p1=='A' || *p1=='E')
{
if (! (i%2) )
{
*p2=*p1;
p2++;
i++;
}
}
if (*p1=='B' || *p1=='C' || *p1=='D')
{
if (i%2)
{
*p2=*p1;
p2++;
i++;
}
}
p1++;
}
} -
DrojDtroll
veterán
válasz
#36268800 #5603 üzenetére
akkor ha a fájlbeolvasást le akarod egyszerűsíteni akkor beírod a fájl elejére hogy hány sor van benne
először beolvasod ezt a számot majd indítasz két egymásba ágyazott ciklust.
a külső addig meg ahány sor van, a belső pedig az öt számot olvassa be,
ha szóköz van közte az a legjobb mert akkor elég egy sima scanf
-
Ver'alor
tag
válasz
#36268800 #5489 üzenetére
Azért szeretném így, mert eredetileg ezzel az integerrel számolni szeretnék, és ha beír egy szót, akkor pl kiad egy hibaüzenetet (most mem szimplán azza gondolok, hogy annak függvényében ágazik el a program, hogy betűket írt be szám helyett, hanem egy konkrét szót, szóval nem az isaplha-ra gondolok)
-
alapz@j
tag
válasz
#36268800 #5427 üzenetére
Írj egy one time pad alkalmazást. Egy hex és base64 kódolót/dekódolót. Aztán valami egyszerűbb ciphert (pl. rot13) használó kis programot. Aztán írj egy programot, amiben egy külső titkosító könyvtár (wincrypto, libnettle, openssl, akármi) egyszerű szimmetrikus titkosítását használod (xxtea, aes, chacha, stb.). Közben ismerkedj meg a secure random, a kriptográfiai hash, a keyed hash fogalmával és használatával. Ezután jöhet az authenticated titkosítás, a nyilvános kulcsú kriptográfia és a többi finomság. És mindeközben sajátítsd el azt, hogyan lehet biztonságos C programot írni, amelyik nem szivárogtat ki információkat az általa kezelt adatokról.
-
válasz
#36268800 #5285 üzenetére
Isten hozott a lebegőpontos számok világában!
Alapvetően két csúnya dolog van velük:
1. a pontosságuk korlátozott, vagyis előbb-utóbb lesznek kerekítési hibák
2. nem tizes, hanem kettes számrendszert használnak, így a tizes számrendszerben kevés tizedesjegyből álló számok simán lehetnek végtelen tizedestörtekHa kiíratnád a MAXP*0.57 értékét, akkor valószínűleg valami olyasmit látnál, hogy 0,57000001. Emiatt lebegőpontos számoknál számolni kell azzal, hogy az egyenlőség nem fog működni és nem egzakt egyenlőséget vizsgálni, hanem azt, hogy az adott szám benne van-e valamilyen tartományban.
-
Karma
félisten
válasz
#36268800 #5279 üzenetére
Nem a double-int konverzióval van baj, sokkal nagyobb probléma, hogy a 34. és a 43. sorban a számítás végző függvényeket (pointerként) adod be a printf-nek, nem pedig meghívod őket.
A double kockázat megoldása annyi, hogy a 7. és a 14. sorban a hányadost 2-ről 2.0-ra átírod.
-
-
válasz
#36268800 #5230 üzenetére
"A kérdésem az volna ezzel kapcsolatban, hogy mi a különbség az egyszerű "if" és az "else-if" között?"
Az, hogy sima if-eknél (megfelelő feltételek esetén) a program akár az összes if-be belemehet, if-else-eknél viszont legfeljebb csak egybe. Neked itt pont az else-if kell, mert egymást kölcsönösen kizáró feltételeid vannak.
"Esetleg valamelyik gyorsabban lefut?"
Ez is benne van, ha if-else-eknél belemegy valamelyik ágba, akkor utána a komplett blokk végére ugrik, nem nézi meg a többi feltételt. Mondjuk ez olyan különbség, ami tipikusan olyan kicsi, hogy mérések sem mutatják ki.
"A Microsoft Visual Studio-t használom, hol találom benne a program gyorsaságát?"
VS 2013-ban van profiler, de őszintén szólva nem hiszem, hogy jelenleg neked erre bármi szükséged lenne. Az ekkora programok futási ideje bőven mérési hibán belül van.
"Mi a véleményetek a kódom tagoltságáról?"
Így azért jóval olvashatóbb (ez az else-if szokásos írásmódja):
int main(void)
{
float num1, num2;
printf("Enter two numbers\nFirst: "); scanf("%f", &num1);
printf("Second: "); scanf("%f", &num2);
if (num1 == num2)
{
printf("They are equal: %f = %f", num1, num2);
}
else if (num1 > num2)
{
printf("They are not equal, %f > %f", num1, num2);
}
else
{
printf("They are not equal, %f < %f", num1, num2);
}
getch();
return 0;
}Ezen túlmenően ekkora kódnál azért különösebb tagoltságról nem lehet beszélni
ÁLtalános megjegyzésként még annyi, hogy lebegőpontos számoknál a == csak nagyon korlátozottan használható (itt mondjuk pont igen), mert ott a kerekítési hibák miatt előfordulhat, hogy két érték, aminek elméletben azonosnak kellene lennie, mégsem lesz pont ugyanannyi.
-
válasz
#36268800 #5230 üzenetére
Az else ág csak akkor hajtódik végre, ha az if-ben szereplő állítás hamis volt. Mivel itt egymást kizáró feltételek vannak, lehet külön is írni az if-eket, mindig csak egy lesz igaz, így mindkét esetben azt csinálja a program, amit szeretnénk, de az if-else megoldás a jobb (nem vizsgáljuk mindig mind a három feltételt feleslegesen).
Ú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!
- Hibátlan Apple iPad 10.9 2022 64GB + Apple iPad Smart Cover eladó! Garancia!
- Asus TUF Gaming A15 FA507 - 15,6"FHD 144Hz - Ryzen 7 7435HS - 16GB - 512GB SSD - RTX 4050 -2+ év gar
- T15p Gen2i 15.6" FHD IPS i7-11800H GTX 1650 32GB 1TB NVMe magyar vbill ujjlolv IR kam gar
- SAMSUNG AI Smart VA monitor 32" M7, 3840x2160, 16:9,
- TRUST GXT 498 Forta vezetékes fejhallgató mikrofonnal, PC, PS4, PS5, 3,5mm jack, fehér
- HIBÁTLAN iPhone 15 Pro Max 256GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3494, 91% Akkumulátor
- iKing.Hu - Xiaomi 14T Blue Gyors, stílusos és megbízható 12/256 GB Használt, karcmentes,Gari
- Eladó karcmentes Apple iPhone 13 Pro 128GB Kék / 12 hó jótállás
- Apple iPhone 14 128 GB Fehér 1 év Garancia Beszámítás Házhozszállítás
- Apple iPhone 12 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest