Új hozzászólás Aktív témák
-
kingabo
őstag
válasz
chabeee #3631 üzenetére
Rosszul állítod be a visszafelé mutató pointert az insert_after-ben. Először át kéne menni az új elemre és annak állítani a prevjét. Jelenleg minden prev saját magára mutat.
nodee->next = (node*)malloc(sizeof(node));
nodee->prev = nodee;
nodee = nodee->next;
nodee->data = data;...
helyettnodee->next = (node*)malloc(sizeof(node));
nodee = nodee->next;
nodee->prev = nodee;
nodee->data = data;szerk: lehet vhogy kiemlést is betenni a kódba? Nekem nem jött össze.
szerk #2: a nodee-n kívül az előtte és az utána jövőnek is karban kéne tartani a pointereit. (sztem célszerű lerajzolni, hogy mit hogy kell átkötni)
-
Lacces
őstag
válasz
chabeee #3626 üzenetére
http://thecodecracker.com/c-programming/circular-linked-list/. Vasárnap igazán utána nézhettél volna... Keres rá neten: "circular linked list"
kispx: Mikor érdemes amúgy cirkulált listát használni?
-
Lacces
őstag
válasz
chabeee #3618 üzenetére
Biztos cirkulált listánál akarsz beszúrni az elejére végére?
Lehet én vagyok a buta most, de a cirkulált lista, az egy olyan lista, amelynek nincs eleje se vége... mert körbe láncoltak az elemek... "utolsó" elem az "első" elemre hivatkozik, mint egy népi körtánc... én legalábbis mindig azt hittem ez a cikrulált lista.
-
Lacces
őstag
válasz
chabeee #3611 üzenetére
Angol weboldalon a teljeség igénye nélkül a forráskód C-ben a duplán láncolt listához.
Angol, ha nem tudod, akkor fordítsd le magadnak, bőven jó. Ha nem megy, akkor rajzolád le.
Vagy a könyvtár és a Számítógép programozás című könyveket tanulmányozd ezügyben, vagy egy másik magyar nyelvű könyvet, viccen kívül
Ha meg megy az angol, akkor mehet a google kereséslinked list animation. És láss csodát
mint itt (csak várni kell az animácóra
)
-
Jester01
veterán
válasz
chabeee #2916 üzenetére
Rengeteg módon. Például csinálsz egy struct-ot amiben benne van a magyar és az angol szó. Ezután qsort hívással, a megfelelő összehasonlító függvény megadásával, berendezed:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct entry
{
const char* eng;
const char* hun;
};
static int compare_entries(const void* a, const void* b)
{
const struct entry* e1 = a;
const struct entry* e2 = b;
return strcmp(e1->eng, e2->eng);
}
int main()
{
struct entry words[] = {
{ "dog", "kutya" },
{ "donkey", "szamar" },
{ "content", "tartalom" },
{ "apple", "alma" },
{ "good", "jo" },
{ "diamond", "gyemant" }};
const int count = sizeof words / sizeof words[0];
int i;
qsort(words, count, sizeof words[0], compare_entries);
for(i = 0; i < count; ++i)
{
printf("%s %s\n", words[i].eng, words[i].hun);
}
return 0;
} -
Rickazoid
addikt
válasz
chabeee #2908 üzenetére
Nálam először -1 hibakódot dobott a Code::Blocks, aztán rájöttem, hogy nincs bemenet.txt fájl. Erre nem írsz egy ellenőrzést, hogy ilyenkor se hibával lépjen ki? Ha jól gondolom ez iskolai feladat, oda nem árt ilyesmit beleírni, hátha beleköt a tanár (persze lehet nem, te ismered jobban). De egyébként is jobb (főleg később), ha az ember úgy írja a programjait, hogy hibánál (már amelyiket előre meg lehet jósolni) figyelmeztessen rá, "szóljon", hogy mi a gond.
-
kingabo
őstag
válasz
chabeee #2839 üzenetére
Ezekkel mit akartál megvalósítani?
for(i=0;i<n1;i++) {
counter++;
}
for(i=0;i<n2;i++) {
counter++;
}Szerintem ez ugyanaz és nagyságrendekkel gyorsabb:
counter = n1 + n2;
A t3-at, ha csak a kiíratáshoz használod, akkor fölösleges a másolás. Ha ez egy visszatérő paraméter akarna lenni, akkor az fv végén lévő free(*(t3)); törli és ha ezután használni szerednéd (a törölt elemeket), csúnya dolgok történ(het)nek.
-
Jester01
veterán
válasz
chabeee #2755 üzenetére
Hiányzik egy ; a return 0 után, ez gondolom másolási hiba különben nem is fordul. Ezen felül a fordító segítő üzeneteit ne hagyd figyelmen kívül:
t.c: In function 'beolvas':
t.c:19: warning: format '%d' expects type 'int *', but argument 2 has type 'unsigned int'
t.c:21: warning: format '%lf' expects type 'double *', but argument 2 has type 'double'
t.c:24: warning: format '%d' expects type 'int *', but argument 2 has type 'int'Azt próbálja neked mondani, hogy a scanf hívásokban pointert kell átadni, vagyis:
scanf("%d",(unsigned int)t[i].gyev);
-helyett-
scanf("%d",&t[i].gyev);
(annak a castnak amúgy sem volt semmi értelme)Hasonlóan a többire is.
Korcsii: a hiba attól még nem tűnik el. Bár a %u ettől még jó javaslat.
-
Gyuri16
senior tag
Ú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!
- 1-12 részletre.Új noblechairs EPIC műbőr FEKETE - FEKETE. 2 év garancia!
- Bomba ár! Lenovo IdeaPad 330S-15IKB - i5-8G I 8GB I 256SSD I 15,6" FHD I HDMI I Cam I W11 I Gari!
- LG 65BX - 65" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready!
- Menő retró konfig: Q9550, Gigabyte P43, 4GB RAM, ASUS GT730,
- AKCIÓ! Apple iPad Pro 13 2024 M4 512GB Cellular tablet garanciával hibátlan működéssel
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest