Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 02. 12. 2011 17:43

Shalinka
Příspěvky: 71
Reputace:   
 

Převod objemových jednotek pomocí struktury v C

Dobrý den, v C začínám a trošku bojuji se strukturami, potřebuji napsat program, který má jednu strukturu, která se jmenuje capacity a druhou uk_capacity. struct capacity má obsahovat mililitr a litr. struct uk_capacity má obsahovat pintu a galon. Mám naprogramovat funkce která např. mililitr převede na galon, ale také galon na mililitr.. Funkce berou jako hodnotu objem vyjádřen jedním structem a vracejí objem vyjádřený druhým způsobem (návratová hodnota je struct).

Nějak moc ani nechápu toto zadání, tak kdyby mi někdo pomohl, budu moc ráda.
Předem děkuji.

Offline

  • (téma jako vyřešené označil(a) Shalinka)

#2 02. 12. 2011 17:57

jindra
Příspěvky: 78
Reputace:   
 

Re: Převod objemových jednotek pomocí struktury v C

Začni tím, že si najdeš jak se převody mezi těmito jednotkami dělají.

A pak si napiš funkci, která dostane jako parametr třeba mililitr a vrátí ho v galonech. (Zatím to vracej jako číslo).To není těžké.

Když se na to podíváš, tak máš v podstatě hotovo, akorát že parametr funkce bude místo čísla struktura. A vracet místo čísla budeš také strukturu. A operace převodu budeš dělat úplně stejně akorát se budeš na tu hodnotu odkazovat přes nazev_vytvořene_struktury.mililitr (místo jen mililitr)

Offline

 

#3 02. 12. 2011 19:24

Shalinka
Příspěvky: 71
Reputace:   
 

Re: Převod objemových jednotek pomocí struktury v C

Zkusila jsem to takto, ale nějak to zlobí, tak nevim kde je chyba:


#include <stdio.h>
#include <stdlib.h>
       
float mil_na_galon(float cislo)
{
      float x;
      x=cislo*0.000264;
      return x;
      }
int main(void){
    int vstup;
    printf("Zadejte militry:\n");
    scanf("%f",&vstup);
    printf("Vysledek je %f galonu",mil_na_galon(vstup));
    return 0;
    }

Offline

 

#4 02. 12. 2011 20:28 — Editoval cStP (02. 12. 2011 20:29)

cStP
Příspěvky: 39
Reputace:   
Web
 

Re: Převod objemových jednotek pomocí struktury v C

Protože máš proměnnou  "vstup" deklarovanou jako integer, ale načítáš do něho datový typ "float". Takže buď musíš v scanf použít "%d" (což nejspíš ne, neboť bys přišla o desetinné čísla) anebo deklarovat vstup jako "float vstup". Pak už to bude s tím "%f" fungovat ;-)

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson