Új hozzászólás Aktív témák
-
kicsitomi88
őstag
NA jo de 5 es fel perc volt a nullarol. Csak az akartam leirni, hogy milyen elv alapjan adom ossze oket h o is lassa.
A feladatban nem volt szo sem ellenorzesrol sem semmirol.
valoban char c[21];
es azert a -1el szorzas mert nem volt lelki erom a 48-c-at atirni ha igy is mukodott es ket alapmuveletet elvegezni es ascii tablat bongeszni tovabb.
1.
#include <stdlib.h>
#include <stdio.h>main()
{
char c[21]; int i=0; int s=0;gets(c);
while ( c[i] != '\0' )
{
s += (c[i]-48);
i++;
}printf("%d ", s);
fflush(stdin);
getchar();}
[ Szerkesztve ]
90 87.5 87.8 87.5
-
-
-
SKFA
csendes tag
válasz Jester01 #208 üzenetére
Köszönöm a segítséget utólag, és előre is!
Őszintén szólva annyira nem vágom a programozást hogy így kivitelezzem, tanárnak is valószínűleg eleg lenne egy egyszerűbb megoldás.
Ha jól értem a pontosságnak nem sok köze van a tizedesjegyek számához, sokkal inkább a az x^n/x! elvégzett műveletek számához. -
#25954560
törölt tag
válasz Jester01 #249 üzenetére
aha. latom mar, kozben talaltam par jo linket is.
ha kizarolag unix/linux rendszerrol beszelunk, akkor mindig a kernel intezkedik az uj szalak szetosztasarol a magok kozott? (mondjuk terhelestol fuggoen)
ha nem kene hozzanyulni minden egyes uj sokmagos proci megjelenesekor, akkor hogyan lehet erdemben 2, 4 es 8 magra elore megirni? megirom nyolc szalra es akkor ket magon is 2x4 szalon fut majd?
memoriateruletek hozzaferesevel nem kell foglalkozni? vagy lehet azert nemileg optimalizalni?
szerencsere olyan a cuccos h konnyu sok szalra bontani es raadasul csak az altaluk irt adattablak miatt kell figyelni arra h egyszerre csak egy valaki irhat. (nehogy belefussunk szoftveresen a tlb bugba ) -
#25954560
törölt tag
válasz Jester01 #252 üzenetére
koszi.
nem a memoriateruleteken akarok optimalizalni, csak rosszul fogalmaztam. a hozzaferesekkel van bajom. valami szemafort muszaj lesz hasznalni, ehhez viszont kell szinkronizacio a szalak kozott. ha tobb szal matathat egyszerre ugyanabban a tablaban, akkor abbol baj lehet.
tovabb bonyolitja a dolgot, hogy mi van a virtualis gepben futo cuccossal? akkor bizony maga a virtual machine kell hasznaljon tobb magot, mert belul en nem kell tudjam mi van alatta. ajjajjaaaaajjj -
cellpeti
veterán
válasz Jester01 #661 üzenetére
És akkor,ha megadok egy feltételt,hogy max ennyi meg ennyi karaktert lehessen bekérni,akkor se jó az strlen? AZ strlen tesz egy lezáró 0-t?
Akkor az elején 6 elemű tömb kell,mert ugye a 6. a program generálja,vagy elég az 5 karakterű tömb is?Tigris, tigris, csóvafény...
-
cellpeti
veterán
válasz Jester01 #764 üzenetére
Segít ő!
Megírja a progit és akit érdekel,ugyis végignézi,mit miért és hogyan csinált benne,és elkezd rajta gondolkozni. Vagy párszor átnézi,megnézi benne az ötleteket és a folyamatok,majd nyit egy C környezetet és megpróbálja újra megírni!
Sztem elég jó tanulási forma ez is!Tigris, tigris, csóvafény...
-
félisten
válasz Jester01 #764 üzenetére
Hali!
A Fire/SOUL/CD az kb 1992-ben rendszerprogramozó matematika szakon végzett.
400 pontból 398-al, de csak azért, mert valamit nem tudott elolvasni a szaki, még ha a végeredmény stimmelt is. Ezenkívűl a választott diploma munkám címe ez volt:
"Lineáris permutációk a káoszban avagy rendezettség a rendezettlen halmazban"Ebből adódóan, nem hajtok semmilyen babérokra(nincs mire).
Sok esetben csak a kezdő "lökést" kell megadni pár emberkének, még ha ez azzal is jár, hogy megírod helyette a progit....Annyi gondom volt a progival, hogy így nem szabad megírni egy ilyen(file-compare) programot.
(csak sajnos a tanárbá feltételei miatt, csak így lehetett)Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Dirty_Pio
csendes tag
válasz Jester01 #797 üzenetére
Nos egy utolso hiba maradt amivel nem sikerult megbirkoznom: az mreadben amikor a q[i][j] -nek ertekul akarom adni a readnr fuggvegy erteket akkor kidobja azt az errort, hogy invalid conversion from 'int(*)()' to 'int '. Ez mit jelent es a masik dolog: miert nem fogadta el a ROW/COL helyett a max1/max2 -t ?
-
Dirty_Pio
csendes tag
válasz Jester01 #799 üzenetére
Hi, erre nem igazan tudom a valaszt, hogy miert nem megy:
#include <stdio.h>
#include <stdlib.h>
void create_and_fill_array2(int * a, int n) {
a=(int *)malloc(sizeof(int)*n);
int i;
for (i=0; i<n; i++)
*(a + i)=i;
}
void print_array(int *tab,int n) {
int i;
for (i=0; i<n; i++)
printf("%d ",tab[i]);
}
int main (void) {
int *b;
create_and_fill_array2(b,5);
print_array(b,5);
return 0;
}ha a figgvenyen kivul hasznalom a malloc() -t akkor nincsen semmi problema.
-
Dirty_Pio
csendes tag
válasz Jester01 #839 üzenetére
Koszi. Meg volna egy kerdesem : mivel olvassam be az adatokat, mert a scanf elcseszi nekem eleg rendesen, mivel a buffert szepen betologatja az adatok helyere es nincs igazan semmi 5letem mit hasznaljak helyette, mar azon kivutl johu irok egy fuggvenyt ami szepen beolvassa a getchar() ral a neveket meg a kulonbozo szovegeket. Akkor mukodne ha csak a scanf() -el a szamokat olvasnam be?
-
Davey7
senior tag
válasz Jester01 #844 üzenetére
Még mindig bajlódok a 4-es feladattal.
Ez a kód jött ki,de nem működik megfelelően:int i,j,k, visszaford, max, index = 0; //az index azt jelenti,hogy hol áll épp az abc-ben
char karakterek = 97;
scanf("%d %d", &visszaford, &max); //itt olvasom be a visszafordulási ill. azt az értéket,hogy meddig írja ki
for (i = 0; i < max; i++) {
for(j=0;j < visszaford;j++) { //ez a rész ír előrefele
printf("%c", karakterek);
karakterek++;
index++;
}
if (index >= visszaford) {
for (k=0; k!=max-visszaford;k++){ //ez pedig visszafele
--karakterek;
printf("%c", karakterek);
}
}
}Itt a program lényeges része,azt tudom,hogy az index-szel van a baj,de nem jövök rá,hogy mi.
-
blaces
tag
válasz Jester01 #885 üzenetére
köszi a segítséget mindkettőtöknek!
scanf(" %c %c",&elso,&masodik); - így tényleg megy.
jelenleg két könyvet olvasok át ez ügyben, de nem találtam ehhez hasonló példát, ahol két karaktert olvass be, vagy hogy miért kell szóköz oda, vagy mit hogyan befolyásolja a /n ezt az egészet.
Szóval nálam a hiba a /n miatt volt, ami az okozta, hogy ha egy sorból kellett olvasnia két karaktert, akkor az első karakter után berakott egy sortörést, és a scanf a második sorból akarta olvasni a második karaktert? és emiatt valamilyen túlcsordulás történt?
-
blaces
tag
válasz Jester01 #889 üzenetére
kösz, így értem, hogy miért volt rá szükség. A példával eltudom már képzelni a próblémát.
Lortech nekem ez már egy picit magas habár gondolom hogy valami olyasmit akartál írni, hogy az elsonyer+=1 helyett elsonyer++ használjak. A többi részt nem nagyon értettem a szépítésnek, bocsi.
Meg jobb az ha csak annyit finomítok rajta amennyit értek, mert ha meg kell védeni a progit (van valami plágium ellenörző) akkor eltudjam magyarázni. De szívesen megtanulnám a rövidebb(szebb) formákat is. -
Lortech
addikt
válasz Jester01 #899 üzenetére
Ez elég tesco gazsdaságos program lett tényleg, egy pár szemetet beleraktam a már meglévők mellé is (/0, nev[0]). De a lényeg részemől valami finesz belevitele volt a logikába, az ebből a szempontból lényegtelen és hibás részeket egy az egyben átvettem, ha megnézed.
-áhá, az ismétlős tényleg így működik. Több mint egy éve nem írtam hagyományos telefonon, el kellett volna olvasni a feladatot.
-const: nekem mindegy, van jelentősége azonkívül, hogy tényleg konstansként van használva és odakívánkozik a const ?
-gets és tsai: másoltam, nem értem, miért tanítják ezeket az elavult és kerülendő dolgokat a diákoknak. pl. [link]
-strlen: másoltam, tényleg ki kéne váltani egy azonnali értékkel.
-printf: szintén.
-toupper: az jogos, egy-két sor megspórolható.
-szám / egyéb nekem úgy tűnik, nem volt feladat. Persze input vizsgálat kéne.Thank you to god for making me an atheist
-
blaces
tag
válasz Jester01 #905 üzenetére
Feladat:
Írj programot, amely a bemenetről beolvas egy természetes számot - egy térfogatot! A program írja a szabványos kimenetre, hogy hány különböző téglatesthez tartozhat ez a térfogat! (A téglatestek oldalhossza csak egész szám lehet!)
Példa:
bemenet- kimenet
27 - 3
4 - 2
99 - 4
254 - 2Nekem erre csak a 3 for ciklusos megoldás jutott eszembe
[ Szerkesztve ]
-
blaces
tag
válasz Jester01 #908 üzenetére
konkrétan mondta a gyakvezér, hogy a 3 ciklus valami mást kell..., hogy a program 5 másodpercen belül legyen... (vagy millisecundum...).
Rákérdezek mélben a gyakvezérnél, és még alszok rá egyet, holnap éjfélig van a beadási határidő, hátha eszembe jut valami okosság álomközben.a primtényezős felbontást meglestem. A wikipédián talált kóddal ellenőriztem le, a 99 kivételével mindegyikre annyi prím számot adott le amennyi a példában a kimenten szerepel.
"Ha osztója, akkor gyorsan le is kell osztani és belső ciklusban már csak ezt felbontani."
Ez hogy nézz ki egy példa kódban? if (terfogat%i==0) eddig oké a további részt nem tudom megvalósítani -
blaces
tag
válasz Jester01 #910 üzenetére
Igen a ciklus gyorsabb, az valóban nem jó neki. A 2 for ciklus megengedett...
#include <stdio.h>
int main(){
int terfog;
int i, j, k;
int teglatestek=0;
/*int rovidebb;*/
scanf("%d", &terfog);
/*rovidebb=terfog/2;*/
for(i=1; i<=terfog/i; i++){
if (!(terfog%i)){
for(j=i; j<=terfog/j; j++){
if (!(terfog%j)){
k=terfog/(i*j);
if(k>=j)
teglatestek++;
}
}
}
}
printf("%d\n", teglatestek);
return 0;
}Na így tudtam rövidíteni (a tegnapi fórumozásból így tudtam kivenni.), de most nem tudom, hogy hol a hiba, a példa esetekből a 254-re 3-t ad, holott 2-öt kéne adnia, a többire annyit ad amennyit illik neki.
[ Szerkesztve ]
-
blaces
tag
-
Dirty_Pio
csendes tag
válasz Jester01 #943 üzenetére
Szoval ha ki szeretned szamitani az Euler-fele szam egyik x-ik hatvanyat( e^x -t ), akkor az a dolgod, hogy veszed a Taylor fele felbontasat a szamnak, ami lenyegebe a megoldas: e^x=1+e^1/1!+e^2/2!+e^3/3!+... egeszen egy megfeleloen nagy szamig. Es magyarazas kozbe ra is jottem mi is a problema, azaz en nem valasztottam eleg nagy szamot azaz enm eleg pontos az osszegem, mivel az elso x db szamot vettem igy ha mondjuk az e^4-t szeretnem kiszamolni csak az osszeg elso 4 tagjat veszem, es a kovetkezo szamok nem eleg kicsik ahhoz, hogy lehanyagolhato legyen. A kodban a kovetkezo javitasokat eszkozoltem :
#include <stdio.h>
int ex(int n, int x)
{
if (n>0) return x*ex(n-1,x);
else return 1;
}
int fact(int n)
{
if (n>0) return n*fact(n-1);
else return 1;
}
float xex(int n, int x)
{
float q;
if (n>0) {q=(float)ex(n,x)/fact(n);
// printf("%f \n",q);
return q+xex(n-1,x);
}
-->>else return 0;<<-- mivel igy ketszer szamolna a 0 faktorialist h
}
int main(void)
{
int x,n;
scanf("%d",&x);
->>printf("%f",xex(32,x)); <<- ennyit bit meg a float vagy a memoria... ha nagyobb pontossaggal probalkozok akkor errort kapok. Mondjuk igy sem olyan pontos a szamitas, mint amilyent a google mutat, de azt hiszem nincs mar mas hiba. Ha ti talaltok szoljatok!
system("pause");
return 0;
} -
Sk8erPeter
nagyúr
válasz Jester01 #958 üzenetére
Lehet, hogy triviális, csak nem számomra.
Nem tanultunk setpixel függvényről, ami azt jelenti, hogy jelen esetben nem is kéne használni, hanem csak olyan alap függvényekkel és utasításokkal kellene megoldani, amiket az elején tanul az ember, kb. printf, scanf, for és (do-)while ciklusok, if/else, tömbök meg hasonlók szintjén, szóval tényleg nagyon amatőr módon, meg olyan headereket include-olva, mint az stdio.h, string.h, stdlib.h, esetleg math.h, vagy ha nagyon kell, a kevésbé független conio.h, stb...
Ilyen megoldás elképzelhető?Egyébként köszi, hogy ilyen gyorsan válaszoltál!
Sk8erPeter
-
Davey7
senior tag
válasz Jester01 #967 üzenetére
a példabemenetben egy sorban egy mondat és a végén van egy pont.
be kell vállalnom,mert beadandó és talán ez annyira nem vészes Ugye ilyenkor egy sztringbe lesz a mondat, és itt kellene valahogy megoldani,hogy ha 5 betűnél nagyobb egy szó akkor megnézze,hogy palindroma e... úgy gondoltam,hogy valahogy szavanként át kellene másolni egy másik tömbbe,de azt hogyan tudom megoldani?
Ú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!
- Gitáros topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Házimozi belépő szinten
- Milyen program, ami...?
- RAM topik
- Aliexpress tapasztalatok
- Garmin Forerunner 165 - alapozó edzés
- 3 évig még biztosan nem rendelhetünk Xiaomi EV-t
- Kerékpárosok, bringások ide!
- AMD Radeon™ RX 470 / 480 és RX 570 / 580 / 590
- További aktív témák...
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5
- Bomba ár! HP EliteBook 830 G6 - i7-8G I 8GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Bomba ár! Dell Latitude 5580 - i5-G6 I 8-16GB I 256 SSD I 15,6" FHD I HDMI I CAM I W10 I Garancia