Anonymní profil universal – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil universal – Programujte.comAnonymní profil universal – Programujte.com

 

Příspěvky odeslané z IP adresy 85.92.58.–

Durza
C / C++ › funkce vracejici 2 čisla do…
7. 12. 2012   #168272

ohledně těch referencí , to by mi nepomohlo , je to vlastně jen obejítí globální promené,v té funkci sem ješte s a,b pracoval před ifem a vyhovovalo mi že při dalším voláním byly vstupní parametry nezměné, a mohl se mi korektně porovnavat if

Durza
C / C++ › funkce vracejici 2 čisla do…
7. 12. 2012   #168271

díky, nakonec sem tu funkci zrušil a dal si ji do mainu, stejně v ní byl jen jede if.
ale zas sem se něco nového dozvědel.
Se strukturama v C nerad pracuju, připomína mě že na struktury(objekty) je lepsi c++ které neumím,a co neumím mě deprimuje  :D

Durza
C / C++ › funkce vracejici 2 čisla do…
6. 12. 2012   #168267

nerozumím tomu kodu, kde se mi vysledky te fce vkladaji do mích promených?

Durza
C / C++ › funkce vracejici 2 čisla do…
6. 12. 2012   #168265

Zdravím
je možné aby mi funkce vracela 2 čísla do nejakých proměných najednou, tzn při jednom zavolání?
bez použití globálních proměných?
Mám na mysly něco takovehoto 

int fce(int a, int b){
	if(a == b){
		a=(b - 2);
		b= 5; 
	}
	return a,b
}

void main(void){
	int a,b;
	a,b = fce(a ,b); //takhle to asi nemužu napsat, jak jinak to udělat?
}
Durza
C / C++ › načtení matice ze souboru
2. 12. 2012   #167968

#10 cibule
zapomněl sem říct že sem to jako global dal
ale díky tvemu upozornění sem si uvedomil že to nemůžu mět zarověň jako global a zaroveň to předávat parametrem :D

už sem to rozchodil, diky

Durza
C / C++ › načtení matice ze souboru
2. 12. 2012   #167965

a když chci dát ten výpis matice jako funkci ... proc mi nejde tohle?

 program se zacyklí

void vypisMatice(){

    printf("\n\n\n\n");

    for(i = 0; i < pocetMnozin ; i++){     //vypis finalni matice
        for (j = 0; j < velikostiMnozin[i]; j++)
            printf("%i ", mnozinyPole[i][j]);
        printf("\n");
    }
}
Durza
C / C++ › (sjednoceni mnozin) pole ze…
2. 12. 2012   #167961

#9 Durza 

aha tak moje chyba, zapisuje to správně, to ja doplnil do toho vrchního cyklu skok
nevědel sem že může být vynechaný

Durza
C / C++ › (sjednoceni mnozin) pole ze…
2. 12. 2012   #167960

#8 zlz

tenhle kod už odstranuje duplicity ale zapisuje každý prvek až o políčko dal
výsledné pole vypadá 1, 0, 2, 0, 3, 0, 4 ... kde nula je prazdný prvek pole, zapisuje to objedno

Durza
C / C++ › (sjednoceni mnozin) pole ze…
1. 12. 2012   #167939

pořád si s tím nevím rady
mam matici (nebo můžu použít data z přímo z texťáku - vyhnu se tak 2 vnořeným forům) a chci ji přepsat do pole tak aby tam nebyly duplicitní čísla) pokud možno tak aby to výsledné pole bylo velké jako počet neduplicitních míst
 

Durza
C / C++ › (sjednoceni mnozin) pole ze…
1. 12. 2012   #167937

#3 cibule
tenhle kod nefunguje

nezapiše to jediný prvek

Durza
C / C++ › (sjednoceni mnozin) pole ze…
1. 12. 2012   #167932

#2 cibule

myslel sem že STL je jen pro C++
pokud ne rád ji použiju

Durza
C / C++ › (sjednoceni mnozin) pole ze…
1. 12. 2012   #167919

Zdravím
mam v souboru nějaké čísla a já je chci uložit do pole tak aby aby sem každe čislo jen jednou a pokud možno aby moje finalní pole bylo dynamické podle počtu neduplicitních prvků

chci udělat takové sjednocení množin ale jen s jednou množinou
proč mi nefrčí tohle? : 

    int tmp;
    rewind(fr);
    for(i=0; i< pocetPrvkuMatice ;i++){
        fscanf(fr, "%d", &tmp);
        for(k =0; k<pocetPrvkuMatice;k++){
            if(tmp != universum[k]){
                universum[i]=tmp;
            }
        }
    }
Durza
C / C++ › načtení matice ze souboru
1. 12. 2012   #167903

Tak se mi povedlo to sesmolit
Naplnění matice ze souboru když neznáme jeho velikost

třeba to někomu v budoucnu ulehčí práci

#include <stdio.h>
#include <stdlib.h>

int c;
int pocetMnozin= 0;

int PocetMnozin(FILE * fr){ // kvuli poctu mnozin(radku) matice
    while((c = getc(fr)) != EOF){
        if(c == '\n')
        pocetMnozin++;
    }
}



int main(void){
    FILE *fr;
    if((fr = fopen("mnoziny.txt","r")) == NULL){    //test otevreni
        printf("Soubor se nepodarilo otevrit.\n");
        system("pause");
        return 1;
    }
    int i=0;
    PocetMnozin(fr);
    printf("pocet mnozin (radku) %d\n",pocetMnozin);

    int *velikostiMnozin;    //jednorozmerne pole
    velikostiMnozin= (int*) calloc( pocetMnozin , sizeof(int));


    rewind(fr);
    while((c = getc(fr)) != EOF){ /* přečtení souboru */
        while((c =getc(fr)) != '\n'){
            if(c == ' ' ){ //mezer je vzdy o 1 min nez cisel , nekde pridat +1
            velikostiMnozin[i]++;
            }
        }
        velikostiMnozin[i]++; // zde pridavam tu +1
        i++;
    }


    int **mnozinyPole;  //matice pro mnoziny
    mnozinyPole = (int **)calloc( pocetMnozin , sizeof(int *)); //zde si alokuju kolik ma mit matice radku

    int j = 0;
    rewind(fr);


    for(i= 0; i< pocetMnozin ; i++){     
        mnozinyPole[i] = (int *)calloc( velikostiMnozin[i] , sizeof(int));  //tady alokuju sloupecky kazdeho radku
        for(j=0; j<velikostiMnozin[i]; j++){
            fscanf(fr, "%d", &mnozinyPole[i][j]);   //tady matici plním
        }
    }


    printf("\n\n\n\n");
    
    for(i = 0; i < pocetMnozin ; i++){     //vypis finalni matice
        for (j = 0; j < velikostiMnozin[i]; j++)
            printf("%i ", mnozinyPole[i][j]);
        printf("\n");
    }



  if (fclose(fr) == EOF){ /* test zavření souboru*/
     printf("Soubor se neporadilo zavrit\n");
     return 1;
  }

  system("PAUSE");
  return 0;
}
Durza
C / C++ › načtení matice ze souboru
30. 11. 2012   #167902

tak konečně sem si spočítal velikosti souboru 
 

    rewind(fr);
    while((c = getc(fr)) != EOF){ /* přečtení souboru,eof je konstanta */
        while((c =getc(fr)) != '\n'){
            if(c == ' ' ){ //mezer je vzdy o 1 min nez cisel , nekde pridat +1
            velikostiMnozin[i]++;
            }
        }
        velikostiMnozin[i]++; // tady si pridavam +1
        i++;
    }
Durza
C / C++ › načtení matice ze souboru
30. 11. 2012   #167900

Tak sem s tím trochu pohnul , jen se mi to cyklí a není my jasné proč, ten vnitřní while přece narazí na \n ale i tak se neukončí

#include <stdio.h>
#include <stdlib.h>

 // pro velikost pole
int c;
int pocetMnozin= 0;

int PocetMnozin(FILE * fr){ // kvuli vysce matice
    while((c = getc(fr)) != EOF){ 
        if(c == '\n')
        pocetMnozin++;
    }
}



int main(void){
    FILE *fr;
    if((fr = fopen("mnoziny.txt","r")) == NULL){    
        printf("Soubor se nepodarilo otevrit.\n");
        system("pause");
        return 1;
    }
    int i=0;
    PocetMnozin(fr);
    printf("pocet mnoz %d,\n",pocetMnozin);

    int *velikostiMnozin;    
    velikostiMnozin= (int*) calloc( pocetMnozin , sizeof(int));


    rewind(fr);
    while((c = getc(fr)) != EOF){ 
        while(c != '/n'){
            printf("zde se mi to mrcha cykli");
            if(c == ' '){
            printf("velikosti uvnitr %d",velikostiMnozin[i]);
            velikostiMnozin[i]++;
            }
        }
        i++;
    }

    for (i = 0; i < pocetMnozin; i++){  //vypis pole s velikostma (jen pro kontrolu
    printf("%i, ", velikostiMnozin[i]);
    }



  if (fclose(fr) == EOF){ /* test zavření */
     printf("Soubor se neporadilo zavrit.\n");
     return 1;
  }

  system("PAUSE");
  return 0;
}
Durza
C / C++ › načtení matice ze souboru
30. 11. 2012   #167895

to se mi zdá divné
já si přece v tom souboru můžu zjistit počet řádků, teď udělám podle tohoto počtu jedno pole a do něj můžu zapisovat délky řádků. teď bych teoreticky mohl udělat matici vysokou jako počet řádků a širokou jako příslušná pozice v mojem poli délek řádků.
Jde to takhle?
Ja se to snažím naťukat ale sekl sem se , nejede mi to ani pro šířku rádku :( 

udělal sem zatím toto:

:( 

#include <stdio.h>
#include <stdlib.h>

 // pro velikost pole
int c;

int PocetMnozin(void){ // kvuli vysce matice
    int pocetMnozin= 0;
    FILE *fr;
    while((c = getc(fr)) != EOF){ /* přečtení souboru,eof ej konstanta */
        if(c == '\n')
        pocetMnozin++;
    }
    return pocetMnozin;
}



int main(void){
    FILE *fr;
    if((fr = fopen("mnoziny.txt","r")) == NULL){    /* test ověření , null je absolutni nula kontanta*/
        printf("Soubor se nepodarilo otevrit.\n");
        system("pause");
        return 1;
    }

    printf("pocet mnoz %d",PocetMnozin());

    int *velikostiMnozin;    //jednorozmerne pole
    velikostiMnozin= (int*) malloc(PocetMnozin() *sizeof(int));

    int i=0;
    while((c = getc(fr)) != EOF){ /* přečtení souboru,eof ej konstanta */
        while(c != '/n'){
            if(c == ' ')
            velikostiMnozin[i]= +1;
        }
        i++;
    }
    for (i = 0; i < 5; i++){
    printf("%i, ", velikostiMnozin[i]);
}

/*
    while(!feof(fr)){
        while((c = getc(fr)) != '/n'){

        }
    fscanf(fr, "%f", &v[i++]);
*/

/*
    int **mnozinyPole;  //matice pro mnoziny
    mnozinyPole = (int **)malloc(PocetMnozin() * sizeof(int *));
    //od cyklu kvuli zapisu
    mnozinyPole[0] = (int *)malloc(3 * sizeof(int));
*/

  if (fclose(fr) == EOF){ /* test zavření */
     printf("Soubor se neporadilo zavrit.\n");
     return 1;
  }

  system("PAUSE");
  return 0;
}
Durza
C / C++ › načtení matice ze souboru
30. 11. 2012   #167893

Vstupní soubor může vypadat nějak takhle:
1 2 3 4 5
6 6 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23
22 5 16 5 8 11

Pochopil sem že matici budu dělat dynamicky jak do šířky tak do délky, takže před samotným deklarováním matice si musím spočítat počet řádku a do nějakého pole budu ještě ukládat velikost každého řádku.Problém mám jak ty čísla dostat do té matice.

Durza
C / C++ › načtení matice ze souboru
30. 11. 2012   #167892

Zdravím
Mám napsat Set-Cover ale data beru z texťáku ve kterém mam množiny jako řádky, kde jsou čísla oddělená mezerou
chci to načíst do matice a nevím jak na to, nějak sem to plácal ale nepovedlo se.

universal
C / C++ › FIFO (front a zásobník)
11. 12. 2011   #151136

#15 KIIV
obevil sem chybu u toho printu
kdyz h ozavolam jednou tak funguje ale pri druhem vypisu me spadne program

universal
C / C++ › FIFO (front a zásobník)
11. 12. 2011   #151135

jeste bych se zeptal jak mam osetrit nejaky program proti tomu aby mi tam nezadavaly pismena misto cisel
uz mam osetrene cisla jen v rozmezi ale s pismeny si nevym rady
mam tam while(1<=volbaVmenu<=4)

universal
C / C++ › FIFO (front a zásobník)
11. 12. 2011   #151134

tak nejak trochu mi to funguje 
po pouziti mi zas blbne jina funkce ale samotne printf uz jede 
dekuju

universal
C / C++ › FIFO (front a zásobník)
11. 12. 2011   #151132

jo a fci volam s f ....print(f);

universal
C / C++ › FIFO (front a zásobník)
11. 12. 2011   #151131

typedef struct prvek{
    int     hodnota;
    struct  prvek *spoj;
}PRVEK;

typedef struct fronta{
    PRVEK *celo;
    PRVEK *konec;
}FRONTA;

void print (PRVEK *p){
while (p!=NULL) {
     printf ("%d\t", p -> hodnota);
     p = p -> spoj;
}
}

universal
C / C++ › FIFO (front a zásobník)
11. 12. 2011   #151129

#10 KIIV
protoze ukol mam odevzdat do 8 do rana a kdyby ucitel nahodou brouuzdal tak aby mi nerekl ze sem kod opsal

universal
C / C++ › FIFO (front a zásobník)
11. 12. 2011   #151126

#8 KIIV
tohle sem v mem programu delal ale nefunguje mi to 
byl by jste prosim ochotny zkontrolovat mi kod?

universal
C / C++ › FIFO (front a zásobník)
11. 12. 2011   #151121

 pokud to tu jeste neni moc mrtve 
jak by vypadala funkce pro vytisknuti cele fronty prosim?

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý