[ Príspevkov: 3 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.12.10
Prihlásený: 26.03.16
Príspevky: 25
Témy: 7 | 7
NapísalOffline : 09.05.2011 8:59 | Pointer v C

Nazdar ludia, mám taký problém. Mám program kde používam pointer. Program by mal fungovať tak, že si zadám veľkosť pola a vypisujem hodnoty a potom mi má vypísať najväčšie číslo, ale nenapísať jeho hodnotu, ale adresu na ktorej je tá hodnota. No nejako mi to nechce fungovať. Keby mi to niekto pozrel a opravil bol by som naozaj VĎAČNÝ! tu je zdroják:

Kód:
#include<stdio.h>                         
#include<stdlib.h>

int main()                             
{

    int i,j,volba,pocet,max;                   
    int *u_max=&max;                         
    int pole[100];                         
    max=&max;

    do                                     
    {
        printf("\n\t**MENU**\n");
        printf("\n1. Hladanie maximalneho prvku v postupnosti.");
        printf("\n2. Koniec programu.\n");
        printf("\nZadajte volbu: ");
        scanf("%d",&volba);

    switch (volba)                       
    {
        case 1: printf("\nZadajte rozmer postupnosti: ");
                scanf("%d",&pocet);

                for(i=0;i<pocet;i++)         
                {
                    printf("\nZadajte prvok A %d: ",i);
                    scanf("%d",pole+i);
                }
                max=pole[0];
                for(i=1;i<pocet;i++)         
                {
                    if (max<pole[i])
                    max=pole[i];
                }
                printf("\nMaximalny prvok je : %d\n",&max);
                break;

        case 2: printf("\nKoniec programu.\n");
                break;

        default: printf("\nZle zadana volba.\n");
    }
    }
    while(volba<2);                     


    system("PAUSE");
    getch();
    return 0;
}


Offline

Skúsený užívateľ
Skúsený užívateľ
Pointer v C

Registrovaný: 11.01.09
Prihlásený: 25.04.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 09.05.2011 9:34 | Pointer v C

Ty davas vypisovat adresu premennej max, cize nikdy takto nedostanes adresu konkretneho prvku pola. Naco si si zadefinoval smernik int* u_max, ked ho vobec nepouzivas? Dalsia vec je, ze ak chces pomocou printf vypisat adresu, tak sa nepouziva %d, ale radsej %p, co ti adresu vypise v hexa sustave, v ktorej sa lepsie orientuje, co sa tyka spravy pamate. Uprav svoj program takto:
Kód:
for(i=1;i<pocet;i++) {
    if (max<pole[i]) {
        max=pole[i];
        u_max = &pole[i];
    }
}
printf("\nMaximalny prvok je : %p\n", u_max);


Premenna max je tam v podstate zbytocna, kludne sa zaobides s pointerom u_max.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.12.10
Prihlásený: 26.03.16
Príspevky: 25
Témy: 7 | 7
Napísal autor témyOffline : 09.05.2011 10:05 | Pointer v C

Ďakujem človeče, lebo ja som bol z toho už v prdeli


_________________

PC: MB: MSI H110 PRO VH CPU: Intel i3-6100 RAM: Kingston 8 GB DDR4 2133 MHz SSD: Samsung 850 EVO 250GB HDD: Seagate Barracuda 7200 1TB CASE: SilentiumPC Brutus S20 PSU: Seasonic SSP-350GT OS: Windows 10 Home
Notebook: Asus X5DIN
Smartphone: LG G2 16GB
Camera: Xiaomi Yi Action Camera
 [ Príspevkov: 3 ] 


Pointer v C



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

inteligent pointer

v Backend

4

558

25.10.2008 11:05

johny3212

V tomto fóre nie sú ďalšie neprečítané témy.

Delphi: Pointer, hodnota

v Ostatné

1

1252

22.12.2008 22:49

programator

V tomto fóre nie sú ďalšie neprečítané témy.

Pointer cursor aj mimo textu

v Frontend

2

416

21.04.2012 14:28

Bokos

V tomto fóre nie sú ďalšie neprečítané témy.

[C] pointer na pole vo vedlajsej funkcii

v Backend

25

1020

14.11.2016 12:41

Miso122

V tomto fóre nie sú ďalšie neprečítané témy.

error C2109: subscript requires array or pointer type

v Backend

4

353

09.12.2012 15:36

BX



© 2005 - 2026 PCforum, edited by JanoF