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

Program zle konwertuje typy danych

Object Storage Arubacloud
0 głosów
235 wizyt
pytanie zadane 31 stycznia 2018 w C i C++ przez Sic Dyskutant (8,510 p.)

Przekształcałem program, aby dodać do niego tablice po czym już nie konwertuje typów, dlaczego ?

#include <iostream>

long double pro(unsigned *num, unsigned picks);

int main()
{
	double t[5], o;
	std::cout << "Podaj 5 licz i ostatnia super liczbe:\n";
	for(int i=0; i < 5; i++)
		std::cin >> t[i];
	std::cin >> o; 
		
	for(int j=0; j < 1; j++)
	{	
		if((t[j] >= 1 && t[j] <= 47) && (o >= 1 && o <= 27))
		{	
			std::cout << "Szansa wygranej to jeden do ";
			std::cout << pro(t[j],o);	//wyliczenie wyniku
			std::cout << ".\n";
		}
		else
			std::cout << "Liczby od 1-5 musza byc mniejsze lub rowna 47, a liczba nr 6 musi byc mniejsza lub rowna 27!" << std::endl ;
	}
		std::cout << "do widzenia\n";

	return 0;
}

long double pro(unsigned * num, unsigned picks)
{
	long double r = 1.0; //kilka zmiennych lokalnych
	unsigned p;

	for(int i=0, p=picks; p>0; p--)
		r = r * num[i]/p;
	return r;
}

 

1
komentarz 31 stycznia 2018 przez Ghost Bywalec (2,930 p.)
Potrzebna ci ta pętla for w funkcji main, jak wykonuje się tylko raz?
komentarz 31 stycznia 2018 przez Secrus Nałogowiec (32,880 p.)

@Sic, gdzie masz konwersję typu? Bo patrzę po kodzie w te i we wte i nie widzę.

komentarz 31 stycznia 2018 przez Sic Dyskutant (8,510 p.)

przy wywołaniu funkcji przestała działać, oto błąd:

start_4.cpp: In function ‘int main()’:
start_4.cpp:18:27: error: cannot convert ‘double’ to ‘unsigned int*’ for argument ‘1’ to ‘long double pro(unsigned int*, unsigned int)’
    std::cout << pro(t[j],o); //wyliczenie wyniku

 

komentarz 31 stycznia 2018 przez Secrus Nałogowiec (32,880 p.)
No, jak masz funkcję działającą na całkowitych >0, a podsyłasz double...
komentarz 31 stycznia 2018 przez Sic Dyskutant (8,510 p.)

zmieniłem na unsigned:

start_4.cpp: In function ‘int main()’:
start_4.cpp:18:24: error: invalid conversion from ‘unsigned int’ to ‘unsigned int*’ [-fpermissive]
    std::cout << pro(t[j],o); //wyliczenie wyniku

 

komentarz 31 stycznia 2018 przez Secrus Nałogowiec (32,880 p.)
Pointer, a nie zmienna zwykła...
komentarz 31 stycznia 2018 przez Sic Dyskutant (8,510 p.)
a dokładniej ?
1
komentarz 31 stycznia 2018 przez Secrus Nałogowiec (32,880 p.)
W definicji funkcji zapisałeś, że będziesz do niej przesyłał wskaźnik. Tymczasem (borem lasem) wysyłasz tak zwykłego double'a

1 odpowiedź

0 głosów
odpowiedź 1 lutego 2018 przez Sic Dyskutant (8,510 p.)
Rozwiązanie zadania:

 std::cout << pro(&t[j],o);

 

Podobne pytania

0 głosów
1 odpowiedź 94 wizyt
pytanie zadane 16 marca 2019 w C i C++ przez Białozór Użytkownik (750 p.)
0 głosów
1 odpowiedź 3,670 wizyt
0 głosów
2 odpowiedzi 155 wizyt
pytanie zadane 19 listopada 2015 w C i C++ przez sajferrs Początkujący (360 p.)

92,581 zapytań

141,433 odpowiedzi

319,666 komentarzy

61,966 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...