Ú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és
linked 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!
- Apple asztali gépek
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- iPhone topik
- ASUS routerek
- Szombathely és környéke adok-veszek-beszélgetek
- Menekül a HEVC licencdíja elől a HP és a Dell
- ThinkPad (NEM IdeaPad)
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- HiFi műszaki szemmel - sztereó hangrendszerek
- Okos Otthon / Smart Home
- További aktív témák...
- HIBÁTLAN iPhone 14 Pro 256GB Deep Purple -1 ÉV GARANCIA - Kártyafüggetlen, 100% Akkumulátor
- Apple iPhone 12 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Lenovo ThinkPad L490 - i5-G8 I 16GB I 256SSD I 14" FHD Touch I HDMI I Cam I W11 I Gari!
- 3db apró szépséghibás DELL WD19S dokkolók (csak kábel résznél) (ELKELT)
- BESZÁMÍTÁS! MSI B650 R7 7800X3D 32GB DDR5 2TB SSD RTX 5070Ti 16GB Asus ROG Strix Helios GX601 750W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest



- ( te is elsős vagy vagy nem törlöd a házikat ?

