Hirdetés
-
PROHARDVER!
Új hozzászólás Aktív témák
-
Jester01
veterán
Gondolom a fórummotor benyelt néhány szóközt/tabot
Úgy értettem, hogy először megállapítod melyik a leghosszabb, és aztán az összeset ilyen szélességben írod ki. Ehhez nem kell a tömböket piszkálni, elég a printf formátumban megadni ezt a maximális hosszt. Persze csak akkor működik, ha végignézheted előre a kiírni szándékozott szövegeket.
#include <stdio.h>
#include <string.h>
int main()
{
const char* strings[] = { "1", "12345", "123", "123456", 0 };
int maxlen = 0;
int i;
for(i = 0; strings[i]; i++)
{
int len = strlen(strings[i]);
if (len > maxlen) maxlen = len;
}
for(i = 0; strings[i]; i++)
{
printf("%*s gyenge\n", -maxlen, strings[i]);
}
return 0;
}
./a.out
1 gyenge
12345 gyenge
123 gyenge
123456 gyengeJester
-
Lortech
addikt
Nem én írtam bele fixen a 20-at..
"Dinamikus" alatt sok mindent érthettél (volna).Ha dinamikusan növekvő tömb kell, akkor nézhet így ki a main:
int *sor;
sor = fajlbeolvas();
( free(sor); )Vagy beviheted a sort paraméterként is, mindegy.
Fajlbeolvas pedig : int* fajlbeolvas() vagy void fajlbeolvas(int tomb[]) //(int [], int*)
Benne malloc-kal foglalsz x elemnek memóriát, ha kevés, realloc-kal folyamatosan bővíted a tömböt. Lehet egy buffert csinálni, hogy ne kelljen minden új elemnél bővíteni.bővítés valahogy így néz ki: int *segedpointer;
int *tomb;
int *segedpointer;if (van_meg_beolvasnivalo==1 && buffer == 0 ) //kiürült a buffer, de még van beolvasnivaló
{
if ((segedpointer = realloc(tomb, sizeof(int) * (eddig_lefoglalt_mem+buffer))) == NULL)
{
printf("hát ez nem jött be");
return NULL;
}
else tomb = segedpointer;Thank you to god for making me an atheist
-
amargo
addikt
Használj listát, vagy csak tömböt használhatsz?
Vagy ha csak tömböt, akkor a file elejére rakj egy jelzőt, amivel tudod, hogy hány ellemet kell eltárolnod. Vagy még van pár lehetőség. Csak tudni kellene mit akarsz.“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
Lortech
addikt
void fajlbeolvas(int sor[])
{
sor[0]=x;
...}
int main(int argc, char *argv[])
{
int sor[20];
fajlbeolvas(sor);
...
}Így is megoldható a te elképzelésedből kiindulva. De még sok más módon is. (faljbeolvas visszaadja a mutatót vagy értéket, v. globális változó stb )
[ Szerkesztve ]
Thank you to god for making me an atheist
-
Bazsesz
őstag
huhh. ez nekem igen magas
az a poén, hogy ez egy ''koronglopkodó'' játék lenne, ami kétfelhasználós (2 kliens program'' osztott memóriában tárolja az asztalt, és a két program közti szinkronizálás szemaforokkal történik.
Ott tartok, ahol a part szakad, dehát aki ezt kikapta még nem tudta megcsinálni...
gondolom annyi lenne a lényege, hogy A kliens beírja, hogy 7 korongot vesz el, a 100-ból, vagy az aktuális maradékból levonja a 7-et, és a szemaforral a másik programnak átadja, hogy 7-et vett le...
és ez az egész nekem magas, hogy melyik függvény mire hajaz''Játék a szavakkal mintájára Dúd a betűkkel :d Előadja Bazsesz művészúr :)'' by Esmein
-
Miracle
senior tag
#include <iostream>
long fact(long n)
{
long toret = 1;
for (long i = 1; i <= n; ++i)
toret *= i;
return toret;
}
int main()
{
long max = 2;
while ( fact(max) / max == fact(max - 1) )
++max;
--max;
std::cout << ''A legnagyobb szam amelynek nem csordul tul a faktorialisa : '' << max << std::endl;
}
ez megmondja ;) ha atirod a longot double-ra akkor is mukodik, de en sepciel nem vagyok hive annak, hogy lebegopontos tipusokban egyes szamokat taroljunk, es ugy tegyunk, mintha ez teljesen rendben lenne ;)
egyebkent ez a resz:
Ha jól tudom 15 számjegyig pontos a double.
ezt inkabb felejtsd el, es nezz utana hogyan mukodik a lebegopontos szamabrazolas, talalsz rola remek cikket pl a wikipedian.értelmező késziszótár :: rekurzió --> lásd : rekurzió
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
Állásajánlatok
Cég: Axon Labs Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest