|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
18.11.2020, 23:22 | #1 |
Član
Član od: 1.8.2016.
Poruke: 77
Zahvalnice: 47
Zahvaljeno jedanput na jednoj poruci
|
0.0000 као резултат аутпута формата double [програмс
Здраво људи, здраво форумаши.
Почетник сам у програмирању. Радим са програмским језиком Це. Не могу на енглеском да пронађем решење, па сам решио да вас питам овде око тога. Не знам како да изменим код па да као аутпут у случају формата дабл добијем одговарајућу вредност, а не 0.000. Молим свакога ко зна око тога или има неку идеју да ми одговори. Хвала! Изволите принтскрин самог кода и са десне стране аутпут у конзоли. https://ibb.co/wRHYRpf |
19.11.2020, 0:34 | #2 |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: 0.0000 као резултат аутпута формата double [програм
Veoma jednostavno, tvoja printf() funkcija štampa vrednost &b, koja ne predstavlja vrednost b već memorijsku lokaciju gde je podatak smešten.
Da konfuzija bude veća, prilikom štampe naterao si printf() da eksplicitno kastuje izlaz od &b u float čime bi trebalo da kao rezultat dobiješ veoma čudne brojeve ili ako je kompajler tako podešen, nule. Ispravan kod bi izgledao ovako. Kod:
#include <stdio.h> int main() { double b = 3.45667; // Stampa vrednost b. printf("Vrednost b: %f\n", b); // Stampa lokaciju u memoriji (pokazivac) gde se b nalazi. printf("Adresa za b: %p\n", &b); return 0; } |
19.11.2020, 0:38 | #3 |
Starosedelac
Član od: 9.7.2010.
Lokacija: N/A
Poruke: 1.795
Zahvalnice: 750
Zahvaljeno 536 puta na 369 poruka
|
Re: 0.0000 као резултат аутпута формата double [програм
Ampersand operator ispred promenljive sluzi da dohvatis njenu memorijsku adresu, sto ti u slucaju printf nije potrebno.
Kod:
printf("b iznosi %f", b); sad videh da me je Neutrino preduhitrio |
20.11.2020, 22:54 | #4 |
Član
Član od: 1.8.2016.
Poruke: 77
Zahvalnice: 47
Zahvaljeno jedanput na jednoj poruci
|
Re: 0.0000 као резултат аутпута формата double [програм
Хвала вам стварно обојици на помоћи. Радим у компајлеру Коуд Блокс, који такве грешке не пријављује. Просто да је навео то као ерор, ја се не бих ни јавио. Друг ми је рекао да кренем у Линуксу да радим, јер су тамо ваљда компајлери бољи што се тиче пријављивања грешака.
Ако може још једна помоћ: није ми јасно зашто инам не избацује као аутпут вредности које задам као вредности тог датог инама. Дакле, инам је тип променљивих које сам програмер дефинише. Програмер даје назив типу, одређује скуп вредности које дата променљива може да има. Ако имамо унапред дефинисан тип променљиве, int, па вредности променљиве овог типа могу да се крећу од 0 до не знам ни ја шта, па задамо изношење вредности дате променљиве - ми добијамо нпр. број 5. Зато ме чуди ово са инамом. Зар не би требало да буде исто као са интом? Ако сам направио инам "компанија", дефинисао рецимо три вредности тог типа променљиве (Соко Штарк, Пекабета, Делта) и онда једној променљивој (нпр. а) придао вредност Пекабета рецимо, зашто ми онда не изнесе као аутпут "Пекабета" ако ја то тражим? Видим да ради она могућност да ми се изнесе као аутпут редни број вредности која је задата тој променљивој. Дакле, ако тражима аутпут помоћу формат-спесифајера %d, добијам редни број дате вредности. Буквално, ако сам лупио Соко Штарк као прву вредност, изаћиће ми "1". Чуди ме зашто ми излази "[null]" када тражим вредности које сам самостално дефинисао као вредности тог типа променљиве. То ми излази кад у принтефу користим s као формат-спесифајер. Прослеђујем принтскринове: 1) аутпут инама са %d https://ibb.co/HVYGTns 2) аутпут инама са %s - без икаквог аутпута https://ibb.co/N2jmLFR 3) аутпут инама са %s - са аутпутом "null" https://ibb.co/FVp1tb8 Хвала још једном! Надам се да ћу ускоро користити компајлер у Линуксу који ће убојитије показивати на грешке у коду, тако да ћу вам мање досађивати. Не замерите. |
21.11.2020, 0:12 | #5 |
Kekule Mekule
|
Re: 0.0000 као резултат аутпута формата double [програм
SumLjam da linux kompajleri citaju misli i znaju kada zelis da printas vrednost a kada memorijsku adresu
|
21.11.2020, 0:22 | #6 |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: 0.0000 као резултат аутпута формата double [програм
Plus, ako me pamćenje dobro služi, Code Blocks dolazi sa MinGW-om (GCC) "po difoltu" iliti u prevodu sa "Linux kompajlerom"
|
21.11.2020, 21:56 | #7 | |
Član
Član od: 1.8.2016.
Poruke: 77
Zahvalnice: 47
Zahvaljeno jedanput na jednoj poruci
|
Re: 0.0000 као резултат аутпута формата double [програм
Citat:
П. С. Јел прочитао неко ово око инама? |
|
21.11.2020, 22:00 | #8 |
Član
Član od: 1.8.2016.
Poruke: 77
Zahvalnice: 47
Zahvaljeno jedanput na jednoj poruci
|
Re: 0.0000 као резултат аутпута формата double [програм
Иначе, не очекујем заиста око овога да ми неко помаже редовно, него сам се просто доста тражио око тога и нисам успео да пронађем. Но, нема везе. Можда се неко сети да ми препоручи неку књигу за Ц програмирање или тако нешто. Уделите неки линк, пољубите оног што лута.
|
21.11.2020, 22:07 | #9 |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: 0.0000 као резултат аутпута формата double [програм
Knjigu možeš da dobiješ ali od ljubljenja nema ništa.
Programski jezik C sa rešenim zadacima, Laslo Kraus Ako baš hoćeš Bibliju C jezika Programski jezik C, Kernigan i Riči I nemoj svega ti da mešaš ćirilicu i Vukovu "piši kao što govoriš" kod IT termina. Meni, koji znam C, trebalo je previše vremena da shvatim šta si prekrstio u "инам". |
22.11.2020, 13:08 | #10 | |
Član
Član od: 1.8.2016.
Poruke: 77
Zahvalnice: 47
Zahvaljeno jedanput na jednoj poruci
|
Re: 0.0000 као резултат аутпута формата double [програм
Citat:
То је она Синанова песма "изађи на пет минута и пољуби оног што лута", спрдње ради сам то рекао. У праву си за ћирилицу, мада сам у праву и ја што чувам своје писмо, тако да је решење вероватно у оном најтежем: да пишем све време ћирилицом, али да у загради чувам енглеске називе. Мислим да је то најпоштеније према матерњем језику и према стручности, да се тако изразим, тј. према стручним терминима, теми о којој реч. Хвала за препоруке. Преслушавам курс "Ц за почетнике" на Јудемију (енг. "Udemy") што му дође као неко предјело. Хвала заиста и не замерите на хумору, почетничким питањима, ћирилици која све прождире. |
|
15.1.2021, 1:22 | #11 |
Član
Član od: 1.8.2016.
Poruke: 77
Zahvalnice: 47
Zahvaljeno jedanput na jednoj poruci
|
Re: 0.0000 као резултат аутпута формата double [програм
https://ibb.co/5LWTd4r
Здраво, људи, опет ја. Ставио сам линк за принтскрин тога што ме тренутно мучи. Фора је што кад ставим printf за променљиву r, онда добијам сасвим нормално избачену вредност тог r-а. Небитно, ако је неко унео 10, избаци ми 10. Међутим, кад хоћу да ми избаци вредност истог тог r помноженог са 12, тј. вредност променљиве коју сам ја назвао b, добијам нешто доста чудно. Има ли неко идеју због чега је то тако? Хвала! |
15.1.2021, 2:02 | #12 |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: 0.0000 као резултат аутпута формата double [програм
Kada napišeš samo
Kod:
int r; Međutim, ime i tip nisu dovoljni da promenjljiva može odmah da se koristi jer kompajler zna gde je i šta je tvoja promenjljiva ali ne i koja je njena upotrebljiva vrednost pa kad očita šta se nalazi na lokaciji koja je rezervisana za nju nailazi na đubre koje je ostalo od prethodne manipulacije memorijom. Zato za svaku deklarisanu promenjljivu kojoj ne dodeljuješ odmah vrednost moraš pre upotrebe da dodeliš neku početnu vrednost (da je "inicijalizuješ"). Kod:
#include <stdio.h> int main() { int r = 1; int b = 12 * r; printf("%d, %d", r, b); return 0; } // Rezultat: 1, 12 |
20.1.2021, 0:00 | #13 | |
Član
Član od: 1.8.2016.
Poruke: 77
Zahvalnice: 47
Zahvaljeno jedanput na jednoj poruci
|
Re: 0.0000 као резултат аутпута формата double [програм
Citat:
|
|
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
How to... Java | ivan90BG | Programiranje | 324 | 25.7.2020 21:56 |
Даљински од ТВ карте као даљински за рачуl | njupadzija | Video/TV softver | 0 | 10.6.2013 8:43 |
Šta bi sa Blood Omen serijalom? | Nash Knight | O igrama uopšte | 45 | 24.9.2011 14:00 |
Adam: Double Factor - hint needed | nets | Avanturističke igre | 1 | 6.12.2007 22:14 |