• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Prosze o pomoc w zadaniu. c++ funckje

VPS Starter Arubacloud
0 głosów
335 wizyt
pytanie zadane 9 stycznia 2018 w C i C++ przez Stasieg Początkujący (290 p.)

Napisz funkcje wywolywana z dwoma argumentami typu rzeczywistego. Zadaniem funkcji jest porownanie podanych wartosci ze soba i wywolanie wiekszej z nich.

 "float wieksza(float liczba_1, liczba_2)"

 Mialem pomysl by zrobic takie cos"

float wieksza(float liczba_1, float liczba_2){
    return if(liczba_1>liczba_2){
        cout<<liczba_1<<" > "<<liczba_2;
    };"

ale problem polega na tym, że nie wiem w jaki sposob zapisac if w funkcji. Prosze o udzielenie mi pomocy :)

3 odpowiedzi

+1 głos
odpowiedź 9 stycznia 2018 przez damianeqe Gaduła (4,380 p.)

Jeżeli chcesz zrobić tak jak napisałeś, to możesz użyć skróconego if'a

float wieksza(float liczba_1, float liczba_2)
{ 
    return (liczba_1>liczba_2) ?  liczba_1 : liczba_2;
}

 

0 głosów
odpowiedź 9 stycznia 2018 przez chucksqll Stary wyjadacz (12,930 p.)
float wieksza(float liczba_1, float liczba_2)
{
if(liczba_1>liczba_2) return  liczba_1;
if(liczba_1<liczba_2) return liczba_2;
}

Po prostu przed returnem piszesz tego if'a, tyle że funkcja float... musi zwracać float'a, tak więc coś w tym stylu.

komentarz 9 stycznia 2018 przez Stasieg Początkujący (290 p.)
Dziekuje!

A jak juz Pana zlapalem to chcialbym zapytac w jaki sposob zrobic by funkcja po podaniu z klawiatury np. liczby 1 wywolywala jakis wyraz np jeden?
komentarz 9 stycznia 2018 przez chucksqll Stary wyjadacz (12,930 p.)
Nie do końca rozumiem. Chcesz aby każda liczba odpowiadała jakiemuś wyrazowi?
komentarz 9 stycznia 2018 przez Stasieg Początkujący (290 p.)
Tak, na przykladzie miesiacow:

wpisuje 1, funkcja wywoluje wyraz "styczen".
komentarz 9 stycznia 2018 przez chucksqll Stary wyjadacz (12,930 p.)

No to np. tworzysz tablicę stringów z nazwami miesięcy pobierasz od użytkownika liczbę i po prostu wypisujesz miesiac z podanym indeksem. Coś takiego

std::string miesiace[ 12 ] =
{
    "styczen", "luty",
    "marzec", "kwiecien",
    "maj", "czerwiec",
    "lipiec", "sierpien",
    "wrzesien", "pazdziernik",
    "listopad", "grudzien";
}
int i;
std::cin>>i;
std:cout<<miesiace[i+1];

 

komentarz 9 stycznia 2018 przez Stasieg Początkujący (290 p.)
Tylko, ze chcialbym to zrobic za pomoca funckji ale kompletnie nie mam pomyslu jak. Z 15 zadan tylko to pozostawilem poki co bez rozwiazania.
komentarz 9 stycznia 2018 przez chucksqll Stary wyjadacz (12,930 p.)

No to wrzucasz to do funkcji załóżmy

std::string choice(int a)
{
  std::string miesiace[ 12 ] =
 {
    "styczen", "luty",
    "marzec", "kwiecien",
    "maj", "czerwiec",
    "lipiec", "sierpien",
    "wrzesien", "pazdziernik",
    "listopad", "grudzien"
 }
return miesiace[a+1];
}

Prościej nie umiem

komentarz 9 stycznia 2018 przez Arkadiusz Sikorski Pasjonat (20,160 p.)

Indeks tablicy powinien być pomniejszony o 1, a nie zwiększony o 1. No chyba że chciałbyś, żeby zwracany był wyraz "styczeń" po podaniu wartości -1 wink

komentarz 9 stycznia 2018 przez chucksqll Stary wyjadacz (12,930 p.)
No masz rację zrobiłem na początku błąd skopiowałem i nie zauważyłem.
komentarz 9 stycznia 2018 przez Stasieg Początkujący (290 p.)
#include <iostream>

using namespace std;
///////////////////////////////////////////////
int miesiac(int ktory){
	int miesiace;
	string choice(int ktory)

  string miesiace[12] =
 {
    "styczen", "luty",
    "marzec", "kwiecien",
    "maj", "czerwiec",
    "lipiec", "sierpien",
    "wrzesien", "pazdziernik",
    "listopad", "grudzien"
 }
	return miesiace[ktory-1];
		}
//////////////////////////////////////////////

int main(int argc, char** argv) 
{//
	int miech;
		
	cout<<"Po wpisaniu cyfry miesiaca, program wyswietli jego pelna nazwe"<<endl;
		cout<<"\t\nPodaj cyfre miesiaca: ";
			cin>>miech;
		cout<<"\n\tMiesiac ktoremu odpowiada cyfra "<<miech<<" to - "<<void miesiac(miech)<<endl;


cout<<endl;
system("pause");
return 0;
}//

Zrobilem takie cos ale nie dziala

komentarz 9 stycznia 2018 przez Knayder Nałogowiec (37,640 p.)
float wieksza(float liczba_1, float liczba_2)
{
    if(liczba_1>liczba_2) return  liczba_1;
    if(liczba_1<liczba_2) return liczba_2;
}

Po co ty dwa razy sprawdzasz która jest większa? Jeżeli sprawdziłeś liczba_1>liczba_2, to nie musisz drugi raz sprawdzać.
 

float wieksza(float liczba_1, float liczba_2)
{
    if(liczba_1 > liczba_2)
        return liczba_1;
    return liczba_2;
}

 

0 głosów
odpowiedź 9 stycznia 2018 przez Avernis Nałogowiec (27,400 p.)

możesz użyć funkcji "std::max". Funkcja ta zwraca większą z 2 podanych wartości. Przykładowo:


int najw = std::max(1, 4);

najw będzie równe 4, bo 4 jest większe

Podobne pytania

–2 głosów
1 odpowiedź 575 wizyt
pytanie zadane 10 stycznia 2018 w C i C++ przez Stasieg Początkujący (290 p.)
+1 głos
1 odpowiedź 340 wizyt
0 głosów
3 odpowiedzi 824 wizyt
pytanie zadane 6 października 2021 w C i C++ przez polandonion Dyskutant (7,560 p.)

92,973 zapytań

141,938 odpowiedzi

321,180 komentarzy

62,301 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...