Hirdetés
- 3DMark Night Raid eredmények (IGP-sek ide!)
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Házimozi belépő szinten
- Modding és elektronikai kérdések
- Apple MacBook
- Nvidia GPU-k jövője - amit tudni vélünk
- Fejhallgató erősítő és DAC topik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)
- Vezetékes FÜLhallgatók
Új hozzászólás Aktív témák
-
vanek
tag
válasz
WonderCSabo #2998 üzenetére
itt a példa
igen bemenet van
csak én nem tudom..
azért gondolom, hogy valami szélsőséges megoldás..
egyébként nem futtattam a programot minden eshetőségre ami eszembe jutott..mindenre jó volt..:\
-
vanek
tag
válasz
WonderCSabo #2996 üzenetére
bemenet nincs..
a kész progit feltöltöm egy oldalra, ahol egy tesztelő program 10 tesztet futtat le..
az eredményeknél, csak annyit látok, hogy pl.: 5 teszt, futási idő 004 sec, hibás eredmény..
de sajnos semmi ötletem sincs, hogy mi lehet az..
[ Szerkesztve ]
-
vanek
tag
válasz
WonderCSabo #2992 üzenetére
feltöltöttem a progit kijavítva..ugyan úgy 5 hibás eredmény volt..és ugyan ott voltak a hibás eredmények..:\
-
vanek
tag
válasz
WonderCSabo #2992 üzenetére
persze, hogy érdekel, így tanul az ember!
-
vanek
tag
válasz
WonderCSabo #2990 üzenetére
ha arra a javításra gondolsz, amit a c++ topikban írtál..akkor nem működik jól, mivel már az első próbálkozásnál találtam egy hibát..
a forrás sztring az ALMa volt a cél sztring az ALMA
és azt írta, hogy igen benne van és kiírta az ALMa-t..
-
vanek
tag
válasz
WonderCSabo #2988 üzenetére
igen tudom.. és nagyon szépen köszönöm! de amint írtam, nekem nem a programommal van a gond..hanem az eshetőségekkel..
[ Szerkesztve ]
-
WonderCSabo
félisten
Válaszoltam a C++ topikban, de itt folytassuk.
-
vanek
tag
Van egy programom..amely sztringet keres egy adott sztringben..
a problémám, hogy mikor beadom a programot a netes program tesztelőbe, akkor 5 pontra azt írja ki, hogy hibás eredmény..gondolom 5 példa hibás..de sajnos nem tudok rájönni, hogy milyen fajta példák lehetnek azok..
a programom..
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int vizsgal(char s1[], char d1[])
{
int i,j;
for(i=0; i<strlen(s1); i++)
{
if (s1[i]==d1[0])
{
for(j=1;j<strlen(d1);j++)
{
if ((s1[i+j]!=d1[j]) || ((i+j)>strlen(s1)-1)) break;
if (j==strlen(d1)-1) return i;
}
if (strlen(d1)==1) return i;
}
}
return -1;
}
int main()
{
FILE *f,*fk;
char s[256],d[256],e[261];
char ch;
int i,j,kimenet=0;
fk=fopen("ki.txt", "wt");
f=fopen("be.txt", "rt");
if(f==NULL)
{
exit(-1);
}
fgets(s,256,f);
fgets(d,256,f);
kimenet=vizsgal(s,d);
printf("%i",kimenet);
if (kimenet!=-1)
{
strcpy(e,"IGEN ");
for (i=0;i<kimenet;i++)
{
e[i+5]=s[i];
}
e[kimenet+5]='\n';
for (j=0;j<=kimenet+5;j++)
{
fputc(e[j],fk);
}
}else {
strcpy(e,"NEM");
for (j=0;j<3;j++)
{
fputc(e[j],fk);
}
e[3]='\n';
fputc(e[3],fk);
}
fclose(f);
fclose(fk);
return 0;
}köszi előre is
-
Darkzbane
tag
Olyan kérdésem lenne hogy adott C programozási feladat elkészítését (pénzért természetesen) vállalná e valaki?
-
Gyuri16
senior tag
tanulj meg debuggert hasznalni. ket printf az nem debuggolas.
mi tortenik ha .-.- a bemenet? nem NULL lesz az eredmeny, mert a fadban van ilyen ag a "." karakter miatt aminek a kodja ".-.-.-" tehat a vegen egy olyan betut fogsz kapni ami abban a structban volt. mivel olyan morze kod nincs, ezert valami veletlent kapsz. innen mar gondolom egyertelmu..
-
dany27
őstag
válasz
Jester01 #2982 üzenetére
Íme:
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
#include<string.h>
#define ESC 27
#define ENTER 13
#define BS 8
typedef struct ag{
char betu;
struct ag *jobb,*bal;
} Fa;
Fa* uj()
{
Fa* elem=(Fa*)malloc(sizeof(Fa));
elem->bal=NULL;
elem->jobb=NULL;
return elem;
}
void insert(Fa* root, char betu, char *kod)
{
Fa *hely, *elozo;
int i=0;
hely=root;
while (kod[i]!='\0')
{
elozo=hely;
if (kod[i]=='.')
hely=hely->jobb;
else
hely=hely->bal;
if (hely==NULL)
{
hely=uj();
if (kod[i]=='.')
elozo->jobb=hely;
else
elozo->bal=hely;
}
i++;
}
hely->betu=betu;
}
void check(Fa *root,char kod[7])
{
Fa *hely;
int i=0;
hely=root;
while(kod[i]!='\0' && hely!=NULL)
{
if(kod[i]=='.')
hely=hely->jobb;
else
hely=hely->bal;
i++;
}
if(hely!=NULL)
printf("\n%c",hely->betu);
else
printf("\nA megadott morse kod helytelen!");
}
void fill(Fa* root)
{
insert(root, 'A', ".-");
insert(root, 'B', "-...");
insert(root, 'C', "-.-.");
insert(root, 'D', "-..");
insert(root, 'E', ".");
insert(root, 'F', "..-.");
insert(root, 'G', "--.");
insert(root, 'H', "....");
insert(root, 'I', "..");
insert(root, 'J', ".---");
insert(root, 'K', "-.-");
insert(root, 'L', ".-..");
insert(root, 'M', "--");
insert(root, 'N', "-.");
insert(root, 'O', "---");
insert(root, 'P', ".--.");
insert(root, 'Q', "--.-");
insert(root, 'R', ".-.");
insert(root, 'S', "...");
insert(root, 'T', "-");
insert(root, 'U', "..-");
insert(root, 'V', "...-");
insert(root, 'W', ".--");
insert(root, 'X', "-..-");
insert(root, 'Y', "-.--");
insert(root, 'Z', "--..");
insert(root, '0', "-----");
insert(root, '1', ".----");
insert(root, '2', "..---");
insert(root, '3', "...--");
insert(root, '4', "....-");
insert(root, '5', ".....");
insert(root, '6', "-....");
insert(root, '7', "--...");
insert(root, '8', "---..");
insert(root, '9', "----.");
insert(root, '.', ".-.-.-");
insert(root, ',', "--..--");
insert(root, ':', "---...");
insert(root, '?', "..--..");
insert(root, '-', "-....-");
insert(root, '/', "-..-.");
insert(root, '(', "-.--.-");
insert(root, '@', ".--.-.");
insert(root, '=', "-...-");
}
void clreol()
{
int i;
printf("\r");
for(i=1;i<80;i++)
{
printf(" ");
}
printf("\r");
}
void felszabadit(Fa *root)
{
if (root==NULL)
return;
felszabadit(root->jobb);
felszabadit(root->bal);
free(root);
}
int main()
{
Fa* root=uj();
char beolv[7];
int index=0;
int key=0;
fill(root);
printf("Morse kod ellenorzo! Adatbevitel megszakitalsa az ESC lenyomasaval!\n");
printf("Morse kod: ");
do
{
key=getch();
if(((key>=45) && (key<=46)) && (index<6))
{
beolv[index]=(char)key;
index++;
printf("%c",(char)key);
}
else if(key==BS && strlen(beolv)>0)
{
beolv[index-1]=(char)0;
index--;
clreol();
printf("Morse kod: %s",beolv);
}
}while((key!=ESC) && (key!=ENTER || index==0));
beolv[index]='\0';
if(key==ENTER)
check(root,beolv);
else
printf("Adatbevitel megszakitva");
felszabadit(root);
return 0;
}Ezzel próbáljátok ki:
.-. Ez elvileg R betűt ad ami helyes.
.-.- Ez G-t ad ami nem helyes mivel a G morse kódja --. és ha ezt beírom erre is G-t ad![ Módosította: #65675776 ]
-
dany27
őstag
válasz
Jester01 #2980 üzenetére
Elnézést!
Csak azt hidtem hogy valamit a check fgv-ben rontottam el, de aztán kiderült hogy nem és akkor már nem tudtam szerkeszteni a régebbi hozzászólásomat.
Raktam egy if-et oda ahol elhelyezi a betűt a fában,
azért hogy megbiznyosodjak róla hogy a fa jobb vagy bal oldalára rakja... De egy kicsit érdekes lett a végeredmény.
Nem mindegyik betűt tölti fel valamiért, mert sem a bal sem a jobb nem teljeseül....
Erre gondoltam debuggernak a kódba:
if (elozo->bal)
{
hely->betu=betu;
printf("\nBal: %c",betu);
}
else if(elozo->jobb)
{
hely->betu=betu;
printf("\nJobb: %c",betu);
}E szerint minden elem jó helyre kerül szval a feltöltéssel elvileg nem lehet gond...
-
dany27
őstag
válasz
Gyuri16 #2976 üzenetére
Így töltöm fel:
void beilleszt(Fa* gyoker, char betu, char *kod)
{
Fa *hely, *elozo;
int i=0;
hely=gyoker;
while (kod[i]!='\0')
{
elozo=hely;
if (kod[i]=='.')
hely=hely->jobb;
else
hely=hely->bal;
if (hely==NULL)
{
hely=uj();
if (kod[i]=='.')
elozo->jobb=hely;
else
elozo->bal=hely;
}
i++;
}
hely->betu=betu;
} -
dany27
őstag
Sziasztok!
Írtam C-ben egy morse kód ellenőrző progit bináris fát használva de egy érdekes anomáliába futottam....
Ha beadom az a kódot neki hogy .-. akkor kidobja hogy ez az R betű kódja... de ha beírom neki azt hogy .-.- akkor azt mondja hogy G pedig ilyen morse küd nem is létezik....
Sőt mi több a G az pont a fa másik oldalán van.... Már a legelelején pont ellentétes irányba kellene elindulni hogy G-t kapjunk... elméletileg a .-.--nak null pointert kéne hogy adjon mivel a .-. az R betű és utánna nincs már semmi sem...Hol csesztem el?
Ez a rész ellenőrzi hogy van e ilyen morse kód(megpróbálja a beadott kód szerint bejárni a fát):
void check(Fa *gyoker,char kod[7])
{
Fa *hely;
int i=0;
hely=gyoker;
while(kod[i]!='\0')
{
if(kod[i]=='.')
hely=hely->jobb;
else
hely=hely->bal;
i++;
}
if(hely!=NULL)
printf("\n%c",hely->betu);
else
printf("\nA megadott morse kod helytelen!");
}A fa jól van feltöltve az elemekkel!
-
moha21
veterán
válasz
WonderCSabo #2973 üzenetére
Köszi, működik!
közben rájöttem a Borland C-ben majd az össze függvényre van példa is.
DE az fprint-re már nem is emlékeztem, anno suliban kellett csinálni alacsony magasszintű, de alig maradt meg belőle valami. -
moha21
veterán
válasz
WonderCSabo #2971 üzenetére
Köszi! Argomentum az u.a. mint a sima print fv.?
-
moha21
veterán
Sziasztok! Kb. ~5-6 éve programoztam utoljára C-ben, szóval eléggé hiányos már a tudásom.
ascii karaktereket szeretnék fáljba írni ( arra emlékszem, hogy lehet fájlba írni, de már arra nem, hogy hogyan is )
BorlandC a fejlesztőkörnyezet még jó régen írtam rá ezt a programot.:
#include <stdio.h>
#include <conio.h>
#include <dos.h>
main()
{
window(1,1,80,25);
textbackground(0);
clrscr();
int a=1;
for(;;a++)
{
clrscr();
printf("\ntizes sz mrendszerben: %i\ntizenhatos sz mrendszerben: %X\nA karakter: %c",a,a,a);
getch();
}
}nem szép, de működik, szóval ezt kellene fájlba menteni. Nyilván meg tudnám egyedül is oldani, de hátha így gyorsabb lesz.
-
LumberJack
csendes tag
válasz
WonderCSabo #2967 üzenetére
Nálam nem ezek vannak, csak elég hülye neveket szoktam adni a változóknak (mérgemben meg vállalhatatlanokat), gondoltam átírom tisztességesre, mielőtt feldobom ide, csak figyelmetlen voltam
-
WonderCSabo
félisten
válasz
LumberJack #2965 üzenetére
Ez sztem le se fordul, mert a szamok valtozó sehol sem volt deklarálva. Egyébként miért az ifekkel szórakozol, miért nem csinálod a beolvasást/kiírást beágyazott ciklussal?
-
Jester01
veterán
válasz
LumberJack #2965 üzenetére
Például azért, mert az első if blokk x == 80 esetén kinullázza az x-et, amitől persze teljesülni fog az x < 80 feltétel és a második blokk is végrehajtódik. Esetleg simán else ágat kellene használni (vagy átírni kevésbé kacifántos megoldásra).
-
LumberJack
csendes tag
Az előző problémát sikerült már megoldanom, de most csak sikerült valami nevetségesen egyszerű dolgon elcsúsznom. A problémám a következő: szeretnék egy függvényt csinálni, ami file-ból behúzza az adatokat, majd egy kétdimenziós tömbben eltárolja azokat. A file csak space-ekkel elválasztott egészeket tartalmaz, pontosan 1760 db-ot (80x22). A következőt sikerült összehoznom, de valamiért kifagy, és egyszerűen képtelen vagyok rájönni, hogy miért.
int main()
{
int tomb[22][81];
int v, y = 0, x = 0, p;
FILE *szoveg;
szamok = fopen("adat.dat", "rb");
for (p = 0; p < 1760; p++) {
fscanf(szamok, "%d", &v);
if (x == 80);
{
x = 0;
y++;
tomb[y][x] = v;
}
if (x < 80) {
tomb[y][x] = v;
x++;
}
}
y = 0;
x = 0;
for (p = 0; p < 1760; p++) {
if (x == 80) {
x = 0;
y++;
printf("%d", tomb[y][x]);
}
if (x < 80) {
printf("%d", tomb[y][x]);
x++;
}
}
return 0;
}A második for ciklusnak csak ellenőrző szerepe van. Azzal iratom ki a tömb tartalmát.
[ Szerkesztve ]
-
LumberJack
csendes tag
Sziasztok! Nekiálltam írni egy programot, és szeretnék a konzolban színes képeket megjeleníteni karakterek segítségével. Nyilván elég limitált a képek minősége, de pont ilyen retro hangulatra törekszem. Az egyetlen gond azonban, hogy a megrajzolt képeket ANSI fileban menti a rajzprogram(PabloDraw). Ebből kéne nekem valahogy kibányászni a karakterek színeit, magukat a karaktereket stb, stb. Azt akarom kérdezni, hogy tudtok-e valami módszert, amivel a problémát viszonylag egyszerűen meg lehet oldani? Köszi előre is!
-
Jester01
veterán
válasz
Feribacsi555 #2961 üzenetére
A mínusz jel speciális guglinak, idézőjelbe kell az egészet tenni.
-
Feribacsi555
senior tag
válasz
Feribacsi555 #2960 üzenetére
Amúgy nekem ezt írja a google:
A keresett kifejezés (-1.#IND0) egyetlen dokumentumban sem található meg.
-
Jester01
veterán
válasz
Feribacsi555 #2958 üzenetére
Google (
) szerint:
Indeterminate.
Result cannot be represented in a floating point register.
Most likely the result of 0/0, sqrt(-1) or similar.Magyarul nullával osztottál, negatív számból gyököt vontál vagy hasonló - valós számokon - érvénytelen művelettel próbálkoztál.
-
Feribacsi555
senior tag
Sziasztok!
A feladatom az hogy egy adott függvényt egy adott intervallumon belül kiszámoljon. Meglehet adni, hogy mekkora értékenként számoljon. Az a gondom, hogy néha ezt írja ki számok helyett:
-1.#IND0
Ez mit jelent? -
szkorhetz
őstag
válasz
Sk8erPeter #2956 üzenetére
Én ezt nem tudom, két hónapja tanulom a c-t..
-
szkorhetz
őstag
válasz
Sk8erPeter #2945 üzenetére
Esküszöm, így csináltam..
Ú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!
- Steam topic
- Csak egyfajta 5G-t támogat majd az új iPhone SE
- 3DMark Night Raid eredmények (IGP-sek ide!)
- One mobilszolgáltatások
- Kerékpárosok, bringások ide!
- Samsung Galaxy A52s 5G - jó S-tehetség
- Politika
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Házimozi belépő szinten
- Modding és elektronikai kérdések
- További aktív témák...