C Matice funkcia – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C Matice funkcia – C / C++ – Fórum – Programujte.comC Matice funkcia – C / C++ – Fórum – Programujte.com

 

Poki
~ Anonymní uživatel
29 příspěvků
15. 10. 2015   #1
-
0
-

Zdravim,rozhodol som sa ze si spravim jednoduchu app na matice,ale kedze som to nechcel mat take lahke tak som to chcel spravit cez fcie ,nacitajMaticu a vypisMaticu ,idem postupne takze zatial mam len tu prvu.Problem je v tom ze nefunguje tak ako by som chcel,to bude asi tym ze asi este dokonale neviem predavanie parametrov. Skusal som sa hrat aj trocha s pointermi,zial.Taktiez som skusal to prerobit na fciu typu int a vratit tu maticu. Taktiez. Vacsinou mi ten program padol.V com je problem? Ze ta premenna cislo je lokalna ,alebo mam vytvorit nove 2D pole vnutri fcie a potom vratit to?(okay tak som to skusil,nepadne ale vrati blbost,myslim to vytvorenie noveho 2D pola vnutri fcie) Diky :)

#include <stdio.h>

int main(){
    void nacitajMaticu(int PR,int PS,int matica[PR][PS]);
    int pocetRiadkov,pocetStlpcov,i=0,j=0;
    scanf("%d %d",&pocetRiadkov,&pocetStlpcov);

    int matica[pocetRiadkov][pocetStlpcov];
    nacitajMaticu(pocetRiadkov,pocetStlpcov,matica[pocetRiadkov][pocetStlpcov]);

    for (i;i<pocetRiadkov;i++){
        for (j;j<pocetStlpcov;j++){
           printf("%d", matica[pocetRiadkov][pocetStlpcov]);
        }
    }


	return 0;
}
void nacitajMaticu(int PR,int PS,int matica[PR][PS]) { //(pocetRiadkov,pocetStlpcov,matica do ktorej chcem nacitat cisla)
    int cislo,i=0,j=0;
    for (i=0;i<PR;i++){
        for (j=0;j<PS;j++){
            scanf("%d",&cislo); //nahrja cisla
            matica[PR][PS]=cislo;
        }
    }


}
Nahlásit jako SPAM
IP: 178.41.100.–
BDS+3
Věrný člen
15. 10. 2015   #2
-
0
-
Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
Poki
~ Anonymní uživatel
29 příspěvků
15. 10. 2015   #3
-
0
-

Este nie sme s tymi pointermi nejako zohrati:)

Nahlásit jako SPAM
IP: 178.41.100.–
BDS+3
Věrný člen
15. 10. 2015   #4
-
0
-
Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
Poki
~ Anonymní uživatel
29 příspěvků
15. 10. 2015   #5
-
0
-

A nemohol by si hodit ako by to malo vyzerat? :))

Nahlásit jako SPAM
IP: 178.41.100.–
BDS+3
Věrný člen
15. 10. 2015   #6
-
0
-

#5 Poki
nechám to co nejvíc jak to máš ty, ať se v tom vyznáš:

#include <stdio.h>
#include <stdlib.h>
//---------------------------------------------------------------------------
void nacitajMaticu(int PR, int PS, int **matica);
void vypisajMaticu(int PR, int PS, int **matica);
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
 int pocetRiadkov, pocetStlpcov, i=0, a,b;
 int **matica;

 scanf("%d %d",&pocetRiadkov,&pocetStlpcov);

 if(pocetRiadkov > 0 &&  pocetStlpcov > 0) // kontrola zadania
 {
	 //<dynamicka alokacia:
	 matica = (int **) malloc(pocetRiadkov * sizeof(int*));

	 for (i = 0; i < pocetRiadkov; i++) //vyvorenie sirky riadkov
	 {
	  matica[i] = (int *) malloc(pocetStlpcov * sizeof(int));
	 }
	 //dynamicka alokacia.>

	 nacitajMaticu(pocetRiadkov, pocetStlpcov, matica);
	 printf("\n\nmoja matica:\n\n");
	 vypisajMaticu(pocetRiadkov, pocetStlpcov, matica);

	 //<uvolnenie pameti:
	 free(matica);
	 //uvolnenie pameti.>
 }
 else printf("rozmer je treba zadat tak, aby bol > 0");

 getchar();
 getchar();
 return 0;
}
//---------------------------------------------------------------------------
void nacitajMaticu(int PR, int PS, int **matica)
{
 int i, j;
 for (i=0; i<PR; i++)
 {
	 for (j=0; j<PS; j++)scanf("%d", &matica[i][j]);
 }
}
//---------------------------------------------------------------------------
void vypisajMaticu(int PR, int PS, int **matica)
{
 int i,j;

 for (i=0; i<PR; i++)
 {
  for (j=0; j<PS; j++)printf(" %d", matica[i][j]);
  printf("\n");
 }
}

s uvolňováním paměti si moc jistý v C nejsem, jsem zvyklý na new/delete (c++)

Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
Poki
~ Anonymní uživatel
29 příspěvků
15. 10. 2015   #7
-
0
-

Tak zas az tak daleko som nebol    v zivote som tak s pointermi nerobil,takze tak ,ale dik,budem vediet :) 

Nahlásit jako SPAM
IP: 78.98.17.–
BDS+3
Věrný člen
15. 10. 2015   #8
-
0
-

#7 Poki
jestli děláš na windows, a chceš se naučit programovat ze zájmu, tak se raději pusť do C#, myslím, že ti sedne víc. Tutoriálu je na C# moc. A myslím, že potěší, že napíšeš funkční okenní miniaplikaci už po prvních lekcích (třeba kalkulačku, nebo poznámkový blok).

Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
Poki
~ Anonymní uživatel
29 příspěvků
15. 10. 2015   #9
-
0
-

V Csharp uz som kedysi davnejsie pisal,teda aspon som skusil nejake piskvorky ,ale Ccko sa proste chcem aspon naucit zcasti pretoze je to lowlevel language a porozumiet aj tym pointrom ,dynamickej alokacii pamati a podobne ,pretoze doteraz som skusal len highlevel jazyky kde nic take nebolo,napr Java a garbage collector a je to "trochu" zmena :)

Nahlásit jako SPAM
IP: 78.98.17.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 88 hostů

Podobná vlákna

Funkcia — založil ukulele

Funkcia v JS — založil DuDo

Funkcia fgets() — založil LuKeSkO

Moderátoři diskuze

 

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