Új hozzászólás Aktív témák
-
sztanozs
veterán
válasz bandi0000 #3501 üzenetére
felesleges a while-ban az 'a' változó meg az if (x == 0) a= 1;
egyszerűen csak while (x>0) kell, az a-t nem is használod másra csak ennek az ellenőrzésére...[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
PumpkinSeed
addikt
Mivel múltkor nem írt senki, így megkérdezem újra.
Nem tud nekem valaki segíteni, hogyan néz ki egy másodfokú függvény megoldó képlet c-ben.
Odáig eljutottunk, hogy a 0-nál nem kell nagyobbnak lenni-e ahhoz, hogy lefusson a program.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
sztanozs
veterán
válasz PumpkinSeed #3503 üzenetére
Pfff (nem mintha nem reagáltam volna, nekem úgy tűnt te nem válaszoltál a kérdésemre).
De legyek kicsit konkrétabb:
0) Csak valós vagy immaginárius gyököket is szeretnél?
1) Matematikailag le tudod írni a megoldóképletet?
2) C szintaktika megy?
3) Alapvető függvények (alapműveletek, sqrt) megvannak?
4) Feltételes szerkezetet tudsz készíteni C-ben?Ezek közül melyik pontnál akadtál el?
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
PumpkinSeed
addikt
válasz sztanozs #3504 üzenetére
Csak valós gyök, Ez meg van.
A képlet megvan.
C szintaktika meg van tervezve.
Alap függvényeket megkerestem neten.
De a feltételes szerkezet nem megy.És köszi a segítséget, és elnézést a figyelmetlenségemért.
(#3505) Karma
Köszönöm, hogy írtál.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
sztanozs
veterán
válasz PumpkinSeed #3506 üzenetére
Itt leírtam, mit kell csinálnod.
D = B * B - 4 * A * C;
if (D > 0) {
M1 = (-1 * B - sqrt(D)) / (2 * A);
M2 = (-1 * B + sqrt(D)) / (2 * A);
}
else if if (D == 0) {
M1 = (-1 * B) / (2 * A);
}
else { // kizárásos alapon (D < 0)
// Nincs megoldás
}Ja és célszű a determinánst nem lebegőpontos számokkal számolni, hanem egészekkel, mert különben a determináns számításban a kivonás okozhat 0-hoz közeli számot (kerekítési hiba miatt).
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
válasz WonderCSabo #3509 üzenetére
dupla
(nem is akarok mentségeket keresni)JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
PumpkinSeed
addikt
válasz WonderCSabo #3509 üzenetére
A dupla if-et én is láttam és ki is javítottam, csak lányos zavaromba nem írtam le.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
Ndrew8647
csendes tag
Sziasztok!
Kezdő vagyok C programozásban és tanulgatjuk, de még bonyolult nekem.
Ezelőtt nem foglalkoztam programkészítéssel.
Kell írni egy beadandót, melyben karaktereket kérünk be pontosvesszővel elválasztva és amikor EOF akkor ki kell íratni a karaktereket oly módon, hogy minden pontosvessző utáni karakterláncot új sorba kell kezdeni, és elé kiírni, hogy hanyadik sorba gépeltük be a bekéréskor.Példában kb így néz ki
bekérem
aaaa;vvvv;bbbb;
aaa;fff;ddderedmény:
1.sor:
aaaa
vvvv
bbbb
2.sor:
aaa
fff
dddValahogy így kezdtem el megpróbálni megoldani a feladatot:
#include <stdio.h>
int main(int argc, char *argv[]) {
char c, sor [200];
int i=0;
while (( c = getchar () ) !=EOF && c!= "\n"){
sor[i]=c;
i++;
}
printf(" Sor: %S\n" , sor);
putchar(c);
}Eddig ennyire jutottam, de itt is már az a baj, hogy ha eof akkor csak kisírja hogy Sor: és semmi sorszám, semmi karakter nincs mögötte.
Előre is köszönöm bármi nemű segítségnyújtásotokat.
-
Jester01
veterán
válasz sztanozs #3498 üzenetére
Azért, hogy a kezdőket ne vezessük félre megjegyzem, hogy ez a megoldás nem teljesen tökéletes. A baj nem a konverzióval van, hanem azzal, hogy a string literálok nem írhatók. Tehát ez rossz: char* binary = "0000|0000|0000|0000"; és persze ez is binary[counter] = '1';
Jester
-
Bobrooney
senior tag
válasz Ndrew8647 #3512 üzenetére
#include <stdio.h>
int main(int argc, char *argv[]) {
char c, sor [128];
int i=0;
while (( c = getchar () ) !=EOF && c!= '\n'){
sor[i]=c;
i++;
}
i = 0;
while(sor[i] != '\0')
{
if(sor[i] == ';')
{
putchar(10);
}
else
{
putchar(sor[i]);
}
i++;
}
}A bekérésbe belejavítottam
c!= "\n" <- ez így nem igazán jó (1 char tipusba string-et akarsz rakni ebben az esetben '\' és 'n' karaktert)
c!= '\n' <- így már jó lesz
remélem valami ilyesmire gondoltál.[ Szerkesztve ]
-
Ndrew8647
csendes tag
válasz Bobrooney #3514 üzenetére
Kedves Bobrooney!
Köszönöm a megtisztelő fáradozásod.
Abban kérném még a segítséged, hogy a putchar(10) miért 10?
További kérdésem lenne, hogy ha lenyomom az entert, akkor eof, de nekem több sort kellene beírnom, és csak akkor kell kiírni a végeredményt ha eof lesz.
A soroknál pedig nem tudom megoldani azt, hogy kiírja, hogy 1. sor: és alá az értékeket.Ha ebben még esetleg tudnál segíteni, azt megköszönném.
-
Bobrooney
senior tag
válasz Ndrew8647 #3515 üzenetére
Igazán nincs mit!
putchar(10), az a '\n' ASCII kódja írhatod putchar('\n'); ként is
Ha több soros a dolog akkor más a molekula, érdemes lenne getline-al megoldani. Tanultátok? Van valami eszköz amit tiltanak?
Nálunk pl nem szabadott scanf-et használni
Ha válaszolsz, akkor "A soroknál pedig nem tudom megoldani azt, hogy kiírja, hogy 1. sor: és alá az értékeket." erre is megadom a választ[ Szerkesztve ]
-
Ndrew8647
csendes tag
válasz Bobrooney #3517 üzenetére
Köszi az infókat.
A scanf-et és a getline-t nem tanultuk még.
Sajnos ez volt a 2. óra eddig.
Nem volt szó arról, hogy mit szabad mit nem szabad használni, de gondolom feltűnő lenne, ha olyat használnánk, amit nem tanultunk.
Kaptunk egy pdf filet, amiben a c programozáshoz van segítség, tananyagféle.
De nyilván egy kezdőnek nem egyszerű összerakni egy progit külön példákból... : /
Tehát valahogy így kell kinézzen:beírom:
asdasd;dsada;das; nyomok egy entert
sadasd;asd;äđĐasd;asd; nyomok entert
as;df;sa; nyomok entert
ctrlZ1.sor:
asdasd
dsada
das
2.sor:
sadasd
asd
äđĐasd
asd;
3.sor:
as
df
saremélem érted :/
-
-
-
Bobrooney
senior tag
válasz Ndrew8647 #3519 üzenetére
#include <stdio.h>
int main(int argc, char *argv[]) {
char c, puffer[250];
int i=0, sorok_db = 0;
while (( c = getchar () ) !='0'){
puffer[i] = c;
i++;
}
puffer[i-1] = '\0';
i = 0;
printf("%d. sor:\n", sorok_db+1);
while(puffer[i] != '\0')
{
if(puffer[i] == ';')
{
putchar('\n');
}
else if(puffer[i] == '\n')
{
putchar(puffer[i]);
sorok_db++;
printf("%d. sor:\n", sorok_db+1);
}
else
{
putchar(puffer[i]);
}
i++;
}
} -
Jester01
veterán
válasz Bobrooney #3523 üzenetére
Ez is több sebből vérzik.
1. puffer túlcsordulás
2. egyébként is a puffer tök fölösleges
3. a getchar visszatérési értéke nem char
4. fájl végét nem '0' jelziEsztétikai kifogások
1. az if/elseif/else szerkezetet úgy hívják, switch
2. a '\0' az olyan mint az "artist formerly known as Prince" ... az a karakter aminek a kódja 0 ... akkor már miért nem mondod hogy 0.Jester
-
Ndrew8647
csendes tag
válasz Bobrooney #3527 üzenetére
Hali!
Mielőtt összevesztek, köszönöm az eddigi fáradozásod.
Switch - cassel hogyan nézne ki a dolog?
Az if lenne a switch az else tagok pedig a case elemei?
Egyébként remekül működik a program nagyon hálás vagyok, így már kezdem is kapizsgálni a program elkészítését stb.[ Szerkesztve ]
-
eriktoth
tag
Üdv!
Olyan kérdésem lenne, hogy ezt a deklarációt:
unsigned char CharCounter[256];
át e lehet alakítani valahogy int típussá, mert ha int ként deklarálom, az nem felelne meg a megadásnak viszont így meg sajnos nem működik a programom :S
-
eriktoth
tag
Elvileg tilos a használata, de erre talán tudok saját függvényt írni
-
eriktoth
tag
Valaki meg tudna mondani, hogy az alábbi feltétel mért csak a 255 értékre igaz, és afölött mar nem? Valamiért előröl kezdi számolni :S
for(i=0; i<256; i++){
if ( CharCounter[i] > UCHAR_MAX-1 ){
CharCounterOverflow[i]++;
printf("%d '%c' : NNN\n",i,i);
} -
eriktoth
tag
Igen erre én is rájöttem, és jól mondod unsigned char, és itt a probléma, hogy lehetne hogy túlcsordulás után már ne írja ki az elemeket?
-
eriktoth
tag
Sajnos láma vagyok, de nekem így épp úgy tovább számol :S
-
bandi0000
nagyúr
hy
ismét házi feladat... -.-
Szóval az a feladat h C nyelven meg kell írni hogy bekérek egy max 10 elemű 2-es számrendszerbeli számot amit átalakít 10-es számrendszerbelire
Én úgy gondoltam hogy 10 elemű tömb abba betöltöm a számokat egyesével tehát az 1/0-kat
és visszafelé adok nekik értéket tehát a tömb első eleme 512 őt ér a 2. az 256 ot és igy tovább 10 ig aztán ahol 1 es van annak az értékét adja össze kb 10 if
Szóval jol gondolom vagy nem van egyszerűbb megoldás vagy nem?Xbox One: bandymnc
-
kingabo
őstag
válasz bandi0000 #3543 üzenetére
Még if se kell.
Hátulról előre haladsz a tömbbön, a tömb i-edik értéket megszorzod a hozzátartozó hatvánnyal és ezt összegzed. A hatvány pedig a kövi: kezdetben 1 aztán minden iteráció végén szorzod 2-vel.
Ha if-fel akarod: a szorzás előtt megnézed, hogy az adott érték nem nulla-e.[ Szerkesztve ]
-
Jester01
veterá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!
- Részletfizetés. Bontatlan. noblechairs EPIC székek azonnal . 24 / 36 hónap garancia . +36301300000
- i3 8100/ ingyen automata
- HP EliteDesk 800 G3 SFF / i5-7500 / NVME M.2 / USB Type-C / USB 3.1 / DDR4 / DVD-RW / 27% áfás
- SAPPHIRE NITRO+ Radeon RX 7900 GRE GAMING OC 16G (11325-02-20G) 3 év garancia 254600Ft
- iPhone 13 Pro 128gb, független,nem makulátlan