Jump to content

Diana Papukchieva

Потребител
  • Брой теми

    2
  • Регистрация

  • Последно посещение

Diana Papukchieva's Achievements

Новобранец

Новобранец (1/14)

0

Репутация в общността

  1. struct dominostein { int zahl1; int zahl2; }; struct meinesteinegesamt { dominostein info; meinesteinegesamt *next; }; struct meinesteinegesamt* next= NULL; struct meinesteinegesamt* kopf=NULL; meinesteinegesamt *readSteine (meinesteinegesamt* kopf){ FILE *datei; struct meinesteinegesamt* tail=NULL; if((datei=fopen("datei.dat", "r") )==NULL) { //"r" für Lesen std::cout<<"Die Datei kann nicht geöffnet werden"<<std::endl; return kopf; //bzw return 0 }else { int beginning; fscanf(datei, "%d", &beginning); for(int i=0; i<beginning; i++) { meinesteinegesamt *domino= new meinesteinegesamt(); fscanf(datei, "%i", &domino->info.zahl1); fscanf(datei, "%i", &domino->info.zahl2); printf("[%d:%d]", domino->info.zahl1, domino->info.zahl2); domino->next=NULL; if(i==0) kopf=domino; else tail->next = domino; tail=domino; } }return kopf; } meinesteinegesamt* loeschen (meinesteinegesamt *kopf) { meinesteinegesamt* tmp; while(kopf != 0) { tmp=(kopf)->next; delete kopf; kopf=tmp; } return kopf; }.......
  2. Здравеите, извинявам се за отвратително написания текст и десетките грешки в него, но в компютърните зали няма друга клавятура,а не е позволено да се инсталира,а това е наи-доброто от транспонирането на кирилица онлине, имам да правя следната програма, но съм закъсала напълно, бих била благодарна на всякакъв съвет и обяснение,условието: Набор от домино:Всяко домино има 2 различни номера всеки номер се появява осте два пъти. 1. Прочетете списък на домино от file като параметър на командния ред.Поставете доминото в единично свързан списък. Файловият формат е както следва, за да изберете (виж също примерите.): Първият ред съдържа броя на Камъни. Всеки допълнителен ред съдържа точките, разделени с точно един интервал. 2. Подредете домино, по такъв начин, че да докосва същите номера! Това води до един или повече списъци, които трябва да бъдат изпълнени от Ринг списъци. Единично свързаният списък трябва да позволява достъпа до списъците на пръстена. Имайте предвид, че камъните евентуално при поставянето трябва да бъдат завъртани 3. Покайете всички създадени кръгове, 4. Какво време на сложност имат отделните подзадачи? Указания Има много много начини, за да подредите домино в един или повече кръгове. трябва да се ограничите само до показване на масив от всички камъни. Функции на библиотеки са разрешени само за реализиране на функционалността за въвейдане и показване на конзолата! Liste [1:23][11:42][23:42][1:11] Kreise[1:23][23:42][42:11][11:1] Пример 2: Съдърйание: 7 1 3 3 5 2 6 6 23 23 42 2 42 1 5 На конзолата: Liste [1:3][3:5][2:6][6:23][23:42][2:42][1:5] Kreise [1:3][3:5][5:1] [2:6][6:23][23:42][42:2] Пример 3: Съдърйание 2 1 2 1 2 На конзолата: Liste [1:2][1:2] Kreise [1:2][2:1] Това ми е кодът: #include <iostream> #include <stdio.h> struct dominostein { //Plochka za domino02 chasti s 2 chisla int zahl1; int zahl2; }; struct meinesteinegesamt {//Cqla plochka za domino-Linearen list dominostein info; //Info= dvete chisla meinesteinegesamt *next; //Ukazatel za sledvasht element v linearen list }; struct meinesteinegesamt* next= NULL; //next = nullptr, zashtoto v nachaloto listyt e prazen struct meinesteinegesamt* kopf=NULL; //head,ukazatel vyrhu pyrviq element ot lista struct meinesteinegesamt* tail=NULL; //ukazatel vyrhu posledniq element ot lista struct meinesteinegesamt* pData=NULL; //ukazatel vyrhu konkretnite danni //File: //4 //1 23 //11 42 //23 42 //1 11 meinesteinegesamt *readSteine (){ //Funkciq za prochitane na danni ot fail red po red FILE *datei; if((datei=fopen("datei.dat", "r") )==NULL) { //"r" für Lesen std::cout<<"Die Datei kann nicht geöffnet werden"<<std::endl; //Proverka za nalichieto na faila return kopf; //bzw return 0 //Vryshta head= nulev ukazatel-prazen list }else { int beginning; int temp; fscanf(datei, "%d", &beginning); //Chete pyrvoto chislo ot faila,koeto pokazva kolko redove s dvoiki chisla //ima vyv faila for(int i=0; i<beginning; i++) { meinesteinegesamt *domino= new meinesteinegesamt(); //Syzdavane na nova plochka domino fscanf(datei, "%i", &temp); domino->info.zahl1=temp; //Chete pyrvoto chislo ot matricata s chisla,orepratka kym pyrviq struct zahl1 fscanf(datei, "%i", &temp); domino->info.zahl2=temp;////Chete pyrvoto chislo ot matricata s chisla,orepratka kym pyrviq struct zahl2 printf("[%d:%d]", domino->info.zahl1, domino->info.zahl2); domino->next=0; //ukazatelq vyrhu posledniq element e nulev ukazatel if(i==0) { kopf=domino; //ukazatel vyrhu pyrviq element }else { tail->next = domino; //Memory access -greshka tail=domino; } } }return kopf; } meinesteinegesamt* loeschen () { //Triene na lista meinesteinegesamt* tmp; while(kopf != 0) { //bzw. NULL //Dokato head ne e nulev ukazatel (dokato ima elementi v lista) tmp=(kopf)->next; //Obhojdane na lista delete kopf; kopf=tmp; } return kopf; } meinesteinegesamt *readSteineRing (){ //Chetene na chislata kato ring list,taka che da bydat procheteni //po sledniq nachin: naprimer v dvoikite: [1:3][3:5][2:6][6:23][23:42][2:42][1:5] //Plochki: //[1:3][3:5][5:1] //[2:6][6:23][23:42][42:2] meinesteinegesamt *domino= new meinesteinegesamt; //meinesteinegesamt *pData; if(kopf==0) { std::cout<<"Einfügen im Kopf"<<std::endl; pData->kopf=domino; pData->tail=pData->kopf; }else { std::cout<<"Einfügen im Tail"<<std::endl; domino->next=kopf; tail->next=domino; tail=domino; } return kopf; } int main() { readSteine(); readSteineRing(); loeschen(); return 0; } Благодаря предварително за всяка помощ и още веднъй се извинявам за вида на текста!
×
×
  • Създай ново...