- Honor Magic6 Pro - kör közepén számok
- Apple iPhone 15 Pro Max - Attack on Titan
- Google Pixel topik
- Milyen okostelefont vegyek?
- Samsung Galaxy S24 - nos, Exynos
- Sony Xperia 1 V - kizárólag igényeseknek
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Okosóra és okoskiegészítő topik
- MIUI / HyperOS topik
- Samsung Galaxy S10e - esszenciális
Hirdetés
-
Nagy pofon: lőttek a Meta európai AI-tervének
it Az ír adatvédelmi hatóság kérése miatt a Meta befékezi az AI-modellek kiadását Európában.
-
Retro Kocka Kuckó 2024
lo Megint eltelt egy esztendő, ezért mögyünk retrokockulni Vásárhelyre! Gyere velünk gyereknapon!
-
Still Wakes The Deep - Befutottak az első értékelések
gp Alig egy nap múlva érkezik a játék, amely egyből elérhető lesz a Game Pass rendszerében.
Új hozzászólás Aktív témák
-
eriktoth
tag
válasz WonderCSabo #3540 üzenetére
vagy is nem az i valtozo int es a tombom a CharCounter az unsigned char
[ Szerkesztve ]
-
bandi0000
nagyúr
válasz Jester01 #3553 üzenetére
na jól van ez nekem magas szerintem úgy megcsinálom ahogy kitaláltam így leg elhiszi a tanár hogy egyedül csináltam
csak annyit kérek hogy hogy tudom leírni azt hogy én adjam meg a tömb elemeit?
for(i=0;i<5;i++)
{
scanf("%d",&x);
tmb[i]=x;
}
printf("%d\n",tmb[i]);
így próbáltam de nem jó[ Szerkesztve ]
Xbox One: bandymnc
-
eriktoth
tag
válasz WonderCSabo #3554 üzenetére
Picit átírtam hátha így érthetőbb:
for(i=0; i<256; i++){
if (CharCounter[i] >= UCHAR_MAX ) {
CharCounterOverflow[i]=1;
} else {
CharCounterOverflow[i]=0;
}
if (CharCounterOverflow[i]==1) {
printf("%d '%c' : NNN\n",i,i);
break;
}
}Ez előtt a rész előtt meg van egy while ciklus ami karaktereket kér be, és megszámolja mi hányszor szerepelt.
És az a gond, hogy hiába csordulok túl, előröl kezdi a számolást a típusok pedig így vannak deklarálva:
int i;
unsigned char CharCounter[256];
char CharCounterOverflow[256]; -
Jester01
veterán
válasz bandi0000 #3555 üzenetére
Jó lenne ez, csak a %d ugye addig olvas amíg tud, tehát egyben benyeli a számsorodat. Ezért kell karakterenként olvasni.
eriktoth: Igen, ha túlcsordul akkor elölről kezdi. Ezt ott kellene lekezelni ahol növeled, hogy ne növelje tovább ha már UCHAR_MAX
[ Szerkesztve ]
Jester
-
bandi0000
nagyúr
Elég barbár módszer
De ezen az elven megírható e egyszerűbben
(2-es számrendszerből 10-be konvertálás)
int tmb[10],i,x=1,a;
for(i=0;i<10;i++)
{
scanf("%d",&tmb[i]);
}
if(tmb[0]==1)
{
x=x+512;
}
if(tmb[1]==1)
{
x=x+256;
}
if(tmb[2]==1)
{
x=x+128;
}
if(tmb[3]==1)
{
x=x+64;
}
if(tmb[4]==1)
{
x=x+32;
}
if(tmb[5]==1)
{
x=x+16;
}
if(tmb[6]==1)
{
x=x+8;
}
if(tmb[7]==1)
{
x=x+4;
}
if(tmb[8]==1)
{
x=x+2;
}
if(tmb[9]==1)
{
x=x+1;
}
printf("10-es szamrendszerben:%d\n",x);
system("pause");
}[ Szerkesztve ]
Xbox One: bandymnc
-
kingabo
őstag
válasz Jester01 #3546 üzenetére
Nyertél!
bandi0000: Korábban több megoldást is leírtunk, sztem ezt a fajta megoldást felejtsd el! (annó egy másik proginál ezért is írtam le egy másik fajta megoldást) Indok: mi van ha 100 karakteres számok kellenek? Mi van ha nem 2esből hanem 8asból kell váltani? A korábbi algókhoz alig kell hozzányúlni, a Tiédet meg teljesen újra kell írni
[ Szerkesztve ]
-
dabadab
titán
válasz bandi0000 #3560 üzenetére
Miert egyre inicializalod az x-et? A tmb-ben meg karaktereket nezel, nem szamokat, ezert az egyenloseg jobb oldalar nem 1, hanem '1' kell (ami ASCII eseten egyebkent 49).
x=0;
for ( int c=0 ; tmb(c) != 0 ; c++ )
{
x <<= 1;
if ( tmb(c) == '1' ) x|=1;
}Ja, meg azt azert vegyuk eszre, hogy a tizes szamrendszerbe valo konvertalast az printf()-re biztad
[ Szerkesztve ]
DRM is theft
-
Ndrew8647
csendes tag
Sziasztok,
Sajnos ismételten elakadtam egy feladatommal. :-(
Az a legnagyobb baj, hogy már lassan a kérdést sem értem.Irj olyan C programot, amely a mellékelt kvantumkémiai program bemeneti állományát standard inputról felolvassa (program <Gaussian_input.gjf), kinyeri belőle az atomi koordinátákat és visszaírja a standard outputra az atomok X,Y,Z koordinátáit CSV formátumban. Ezenkívül meghatározza a két legtávolabbi atom távolságát és ezt a távolságot is megjeleníti a kimenet végén
A távolság kiszámításához szükség lehet a négyzetgyökvonás függvényére:
#include <math.h>
double sqrt(double x)
A fordításhoz parancssorban a gcc-nek meg kell adni a -lm kapcsolót, hogy a matematikai könyvtárat hozzáfordítsa a programhoz:
cc program.c -o program -lm
Ennél többet nem tudok sajna hozzátenni.
Ha valakinek van felesleges ideje rám, nagyon szívesen veszem segítségét. -
Karma
félisten
válasz Ndrew8647 #3563 üzenetére
Ezt a Gaussian_input.gjf-t igazán felnyomhatnád pastebinre, csak hogy más is lássa, mi lenne a feladat.
De látatlanban is valószínű, hogy kell:
1) egy fájl végéig soronként olvasás (ez változhat ha megosztod a fájlt velünk!)
2) a beolvasott sor/rekord feldolgozása (X, Y, Z koordináták kinyerése)
3) kiírás CSV-ben, ami annyit tesz, hogy vesszővel elválasztva kiírod a három számot és nyomsz egy újsort, tök egyszerű.“All nothings are not equal.”
-
Ndrew8647
csendes tag
Hello
http://pastebin.com/6804ApVZ itt a file tartalma.
Előre is köszi..[ Szerkesztve ]
-
Peter Kiss
senior tag
válasz WonderCSabo #3566 üzenetére
Meg azt is mondta, hogy feltehetné pastebin-re, mert így látatlanban...
-
aAron_
őstag
Van közületek valaki aki VS2012-t használ c programozásra?
[ Szerkesztve ]
What is your ikigai?
-
Karma
félisten
válasz Peter Kiss #3567 üzenetére
Azt nem mondtam, hogy meg fogom oldani helyette a feladatot
Viszont nézegetve egy kis leírást a Gaussianról úgy tűnik, hogy a feladat kicsit pontosabban így alakul:
1) Soronként be kell olvasni a fájlt.
2) A sorok között megkeresni a koordináták kezdetét, ami gyakorlatilag elszámolás a hetedik sorig (1. chkfile, 2. routing, 3. üres sor, 4. title, 5. üres sor, 6. charge+multiplicity).
3) Végül nem is kell sokat gondolkodni, csak eldobálni a szóközöket. Az elején át kell lépni a sallangot, utána a nevet kimásolni (ameddig nem jön szóköz), kiírni egy vesszőt, szóközöket átlépni, számot kiírni ugyanígy szóközig, szóközöket kihagyni...Nem is kell értelmezni, elég csak bután (nem pejoratív szó!) nézegetni a karaktereket egy ciklusban.
Azt hiszem, hogy ezzel meg is oldottam helyette a házi feladat lényegi részét...
[ Szerkesztve ]
“All nothings are not equal.”
-
kingabo
őstag
-
PumpkinSeed
addikt
Tud valaki nekem mutatni nyílt forráskódú fájlokat?
"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
-
WonderCSabo
félisten
válasz PumpkinSeed #3572 üzenetére
-
bandi0000
nagyúr
hali
int main()
{
char tmb[10];
int i,x=0;
for(i=10;i>=1;i--)
{
scanf("%d",&tmb[i]);
if (tmb[i]==1)
{
x=x*2+tmb[i];
}
if (tmb[i]==0)
{
x=x*2+tmb[i];
}
}
printf("%d\n",x);
system("pause");
}itt tartok a feladattal lényegében számrendszer átalakítás 2-ből 10 be csak annyi lenne a gond hogy úgy kellene feltölteni a tömböt hogy beírom a 10 számjegyes számokat (1,0) és nem egyesenként ütöm be hanem az egészet leírom és betölti 1-sével a tömbbe
Xbox One: bandymnc
-
eriktoth
tag
Üdv!
Egy tombnek megtalatam a legnagyobb elemet ezzel a modszerrel:
max=CharCounter[0];
for(i=1;i<256;i++){
if(max<CharCounter[i])
max=CharCounter[i];
}Most az érdekelne hogy hogyan írathatnám ki a többi elemet is csökkenő sorrendben ?
Valami olyasmire gondoltam hogy megjelölöm a maximumot újra átmegyek a tömbön és a következő maximumot valami ilyesmire gondoltam, csak az implementáció nem megy :S -
csicsaaa
tag
Első sorban elismerésem azoknak akiket elsőkörben itt látok, és valamelyest "kenik-vágjál"
a programozást!
Én most kezdek ismerkedni a C nyelvvel, és most egy számomra nagy logikai gond merült fel! A feladat, amit meg kellene oldanom, hogy írassunk ki két tetszőleges számot és az azok közötti számokat! OK! Ez meg is van!
clrscr();
printf("Adj meg ket kulombozo szamot, megmondom melyek vannak koztuk.\n");
scanf("%i\n",&x);
scanf("%i",&y);
while (x<=y)
{
printf("%i ",x) ;
x=x+1;
}
getch();A következő megoldása nem megy!
Ugyan ez a feladat szinte, csak ugye mint írtam, amatőr módon, nem tudom hogy csak a páros számokat írja ki a ciklus között!
Az ugye nyílván való hogy az if(a%2==0); -el kell gondolkodnom, legalább is nekem még ezzel kell!
Ha tudnátok ebben segíteni az nagyszerű lenne!Védd a fákat, egyél hódot!!!
-
Karma
félisten
válasz csicsaaa #3577 üzenetére
Lassíts kicsit és gondolj bele, hogy milyen hatása van a programra az új feltételnek.
clrscr();
printf("Adj meg ket kulombozo szamot, megmondom melyek vannak koztuk.\n");
scanf("%i\n",&x);
scanf("%i",&y); <-- (1) Változott bármi a beolvasásban? Nem.
while (x<=y) <-- (2) Még mindig végig kell haladni a számokon? Igen.
{
printf("%i ",x); <-- (3) Hoppá, nem kell minden számot kiírni!
Ezért ez elé kell az if.
x=x+1; <-- Ugyanaz mint (2).
}
getch();Mit kell tehát megváltoztatni? Csak a kiírást.
Amit bedobtál if(a%2==0); tényleg a megoldás lesz, csak a pontosvesszőt hagyd le mellőle, mert így le is zártad gyorsan.
[ Szerkesztve ]
“All nothings are not equal.”
-
csicsaaa
tag
Köszi a gyors választ , de egyszerűen analfabéta vagyok!
Az általad leírtakra ezt írtam:
{
clrscr();
printf("Adj meg két számot, és megmondom melyek parosak koztuk.");
scanf("%i",&a);
scanf("%i",&b);
while(a<=b)
{
if(a%2==0)
{
printf("%i ",a);
a=a+1 ;
}
}
getch();
return 0;
}
...és mikor végig fut a program az "a" értékét adja vissza!
Mi az amit nem látok?Védd a fákat, egyél hódot!!!
-
Jester01
veterán
Bár a fenti működik (és más esetben jó is lehet) de azért remélem senkiben nincs kétség, hogy a páros számokat úgy írjuk ki, hogy kettesével megyünk nem pedig úgy, hogy megnézzük melyik szám páros.
Jester
-
Retekegér
HARDVERAPRÓD
Van egy feladat, amelyben karakterenként olvasunk be egy szöveget és egy magánhangzó előfordulása után be kellene szúrni egy v + az adott magánhangzó kombinációt (pl. te-->teve). Azt meg tudom csinálni, hogy a beolvasás közben történjen meg a beszúrás?
<< Heimdal >>
-
Karma
félisten
válasz Retekegér #3586 üzenetére
Miért ne tudnád? A bemeneti stream (esetedben fájl) és a kimeneti stream egymástól teljesen független. Már persze ha nem az a feladat, hogy ugyanabba a fájlba írd vissza, mert akkor borul.
Ha nem ugyanoda kell, akkor a legtriviálisabb megoldás, hogy beolvasol egy karaktert, kiírod, és ha magánhangzó volt, kiírod még a v-t meg a karaktert újra.
Ellenkező esetben csinálnod kell egy ideiglenes fájlt, oda tolni a kimenetet, majd kicserélni a fájlokat miután lezártad az olvasott fájlt.
Vaaaaagy persze beolvashatod az egészet memóriába, de ez mórickás, mert nem működik tetszőlegesen nagy fájlokra.
A karakterenként olvasás se feltétlen jó, de ilyen házikhoz elégnek kéne lennie.
[ Szerkesztve ]
“All nothings are not equal.”
-
kispx
addikt
válasz Retekegér #3586 üzenetére
Tömbbe kell beszúrni vagy a képernyőre kiírni? (Bár ez nem sokat számít)
Az alg. szerkezete nagyjából így néz ki:
while ()
{
ch = getchar() //vagy getch() ?
if ( strchr("öüóaéáűíÖÜÓŐÚ...", ch) != NULL) ;
{
//hozzáfűzöd a tömbhöz vagy kiaratod a 'v+'ch karaktereket
}
}[ Szerkesztve ]
-
Retekegér
HARDVERAPRÓD
-
Davs
tag
Hali!
Suliban csinalunk egy feladatot, amihez kell irni egy funkciot. A funkcio parametere meg van adva, elveleg nem szabad rajta valtoztatni. Amit nem ertek, hogy "double *mtx" hogy jelolhet 2D tombot? Kerdeztem a tanart, gyorsan beszelt ott nekem minden felet, nem ertettem meg viszont. Nekem alapbol az tunik esszerunek, hogy mivel 2D tombrol van szo, ezert double **-t hasznalunk. Szerinte a double *-nak vannak gyakorlati elonyei. El tudjatok magyarazni, hogy mi es egyaltalan hogy tehetek double *-ba 2D tombot? a double * minden eleme egy double, amit kesobb double *-ra castolunk? Szoval egy 8B-es tipusban tarolunk egy 4B-os pointert? Valahogy nem latom ertelmet
Koszi a valaszokat -
e=mc²
őstag
Sziasztok!
Segitseget szeretnek kerni:
Egy postacimet szeretnek beolvasni egy struktura tombbe varos, utca hazszam. formaban.
Na most a varosban jo esetben nincs szokoz, sem a hazszamban (kiveve, ha emelet, ajto van, de ez most nem jatszik). A kozterulet megnevezesenel hogy tudom ugy beiratni, hogy a szokoz utani nevet is beolvassa, pl Petofi Sandor utca.scanf()-el ugye whitespaceig olvassa, ezert ez nem jatszik.
Mutatokat nem szeretnek hasznalani (a feladat sem koveteli meg), igy inkabb hanyagolnam.
A getchar()-t es gets()-t nem igazan hasznaltam meg, probalkoztam veluk is, de nem akarja azt, amit en...A kod reszlet jelenleg igy nez ki:
struct cel_allomas{
char telepules[NEVHOSSZ];
char kozterulet[NEVHOSSZ];
char hazszam[NEVHOSSZ];
};
struct cel_allomas Beker_Cel(){
struct cel_allomas l_cel;
printf("Telepules neve:\n");
scanf("%s", l_cel.telepules);
printf("Kozterulet neve:\n");
scanf("%s", l_cel.kozterulet);
printf("Hazszam:\n");
scanf("%s", l_cel.hazszam);
return l_cel;
}Koszi, udv,
Ambulimax Provider
-
csicsaaa
tag
Hali!
Azt hogy lehetne a legegyszerűbben megvizsgálni két bekéretett ismeretlen között, hogy melyik a kisebb és a nagyobb köztük és azután lépjen be a while ciklusba?
scanf("%i",&a);
scanf("%i",&b);
while (a<=b)
Milyen függvényt vagy egyenletet lehet a scanf-ek után írni?Védd a fákat, egyél hódot!!!
-
e=mc²
őstag
Megprobaltam gets()-el, es igy modositottam a kodot:
struct cel_allomas Beker_Cel(){
struct cel_allomas l_cel;
char str[NEVHOSSZ];
printf("Telepules neve:\n");
scanf("%s", l_cel.telepules);
printf("Kozterulet neve:\n");
gets(str);
strcpy(l_cel.kozterulet, str);
printf("Hazszam:\n");
scanf("%s", l_cel.hazszam);
return l_cel;
}viszont miert kapok olyan hibat, hogy a hazszamot mar nem keri be, hanem atugorja?
Ambulimax Provider
Ú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!
- Steelcase acélvázas íróasztal/számítógépasztal 120x80x70cm kábelrendezővel 40kg
- Felújított Asus rog strix G15 G1512LI + ajándék, 2025.02.20-ig garis! /INGYEN FOXPOST!/
- BenQ PD3205U 4K Tervezői Monitor!32"/99% sRGB/Pantone/AQCOLOR/Type-c/Mac Ready/Beszámítás!
- Samsung Odyssey G8 Ívelt Ultrawide Oled Monitor!34"/Oled/WQHD/175hz/0,1ms/Freesync-G-sync/Beszámítás
- Ahh! DELL Latitude 3410 Tartós Profi Laptop -60% 14" i5-10210U 4Mag 16GB 512GB SSD FHD IPS