Hirdetés
- Privát AI mobil lesz az S26, nem okostelefon
- Samsung Galaxy S23 Ultra - non plus ultra
- Milyen okostelefont vegyek?
- OnePlus 15 - van plusz energia
- Nem maradt Power nélkül a Moto G17 sem
- A Samsung is leszámol a 128 GB-os tárhellyel a Galaxy S26-ban
- Katonai strapabírással futott be a Moto G67 és Moto G77
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- iPhone 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
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- ÚJ aktiválatlan Független Apple iPhone 15 128GB ! 1Év nemzetközi APPLE GARANCiA
- KERESEK Ipad Pro 12.9 4-5th Gen tabletet DE csak is IpadOS 18-al
- ÚJ ASUS CORE I5 14400 GAMER ERŐMŰ PC 32GB DDR5 RAM 512GB NVME SSD NVIDIA RTX 3080 10GB DDR6 2ÉV GAR
- iPhone 15 pro max 256gb Olvasd
- ÚJ ASUS CORE I5 14400F Gamer MAX PC 10X4.6GHz 32GB DDR5 512GB SSD ÚJ AMD 9060XT 16GB DDR6 2ÉV GAR!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest




