» Poradna » Programy

Jazyk C - modulo

 |   |  Microsoft Windows 7 Chrome 34.0.1847.116

Dobrý den všem,ve škole jsem dostala domácí úkol v C a nevím, jak napsat, jeden zápis. Pro přehled Vám sem dám celé zadání : Napište funkci s návratovou hodnotou typu int, která přijme (bude mít) 3 vstupní parametry typu (např. a,b,c) a vrátí součet druhého a třetího parametru, když bude první parametr dělitelný stem (a : 100 - ) tak vrátí součet b a c a když ne tak vrátí rozdíl b a c.Jak mám napsat tu podmíku, když A není dělitelné stem? Zatím mám jen tu část, kdy je dělitelné 100 (mám tuto část dobře?)if ((a%100)==0){vysledek=b+c;}printf("Cislo a je delitelne stem, soucet b a c se rovna: \nvysledek = %f", vysledek);Všem Vám budu moct vděčná! Předem děkuji za odpověď

Mohlo by vás také zajímat

Odpovědi na otázku

 |   |  Microsoft Windows 7 Opera 9.80

ELSE

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows Vista Firefox 28.0

Nemáš to sice vůbec napsané jako funkci s návratovou hodnotou, ale k tomu přijdeš...Podmínka je dobře...V tomto případě jsou 2 varianty:1) Lepší varianta - použít ELSE2) Horší varianta - nejprve vypočítat variantu, kdy není podmínka splněna (vysledek = b - c) a pak použít tvůj kód - pokud podmínka bude splněna, výsledek se přepíše, pokud nebude, tak zůstane původní s rozdílem - problém této metody je to, že v případě splnění podmínky se výpočet provádí dvakrát (což při tomto jednoduchém výpočtu až tak nevadí, ale při něčem složitějším to není ono)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux AppleMAC-Safari 5.0

int funkce(int a, int b, int c){int vysledek;if ((a%100)==0) vysledek=b+c;else vysledek=b-c;return vysledek;}void main(void){int x,y,z;Nacitani xyz...printf(funkce(x,y,z));}

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux AppleMAC-Safari 5.0

Jo jeste jsem zapomel jelikoz to vraci cislo tak se to mozna bude muset napsat formatovane nebo pretypovat na string.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8.1 Chrome 34.0.1847.116

Když už by mě nic jiného nenapadlo a mám if((a % 100) == 0 ) tak bych pro opak využil operátoru !=, samozřejmě lepší je else.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 34.0.1847.116

Děkuji Vám všem moc za pomoc! Nakonec jsem se rozhodla to sestavit takto: int funkce (int a, int b, int c)int main(){printf("Zadej cislo a:\n",a);scanf("%d",&a);printf("Zadej cislo b:\n",b);scanf("%d",&b);printf("Zadej cislo c:\n",c);scanf("%d",&c)}{int vysledek;if ((a%100)==0)vysledek=b+c;printf("Cislo a je delitelne stem, soucet b a c se rovna: \nvysledek = %f", vysledek);elsevysledek=b-c;printf("Cislo a neni delitelne, rozdil b a c se rovna: \nvysledek = %f", vysledek);return vysledek;}Doufám, že to mám dobře :) Všem Vám moc děkuji :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Firefox 24.0

ale vůbec ne, máš to naprosto špatně-ale ty chyby nejsou v tom na co jsi se ptala, ale ve struktuře kódu - a spoustě základních chyb syntaxe. Připadá mi to že jsi to vůbec nepsala a neodladila v překladači C, ale jen napsala v nějakém editoru bez sebemenší kontroly. Jestli vás učej ve škole takhle psát programy jako diktáty, tak to je ta největší blbost - vašeho učitele by měl ředitel z fleku vyhodit..Nakopíruju tí sem opravu tvého kódu jak by mohl fungovat, ale proboha, sežeň si někde překladač jazyka C/C++ (jsou většinou zdarma, mrkni se třeba na www.slunecnice.cz) a nebo aspoň online na ideone.com a uč se programovat v tom. Bez toho je snad lepší se na tu Tvojí školu vykašlat a dát se třeba na modeling...------------------#include <stdio.h>int funkce (int a, int b, int c){ if ((a%100)==0)return b+c;elsereturn b-c;}void main(){int a,b,c,vysl;printf("Zadej cislo a:\n");scanf("%d",&a);printf("Zadej cislo b:\n");scanf("%d",&b);printf("Zadej cislo c:\n");scanf("%d",&c);vysl=funkce(a,b,c);printf("Vysledek = %d",vysl);}

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 34.0.1847.116

Bohužel nám to učitel nevysvětlil.. měla jsem to v Codeblocku, ale protože mi dělá problém ho spustit, vysílá mi to chyby kterým nerozumím, tak jsem to nechala tak, jak jsem to měla Moc děkuji a polepším se!

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Stem, Součet, První parametr, Domácí úkol