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

Funkcje, tablice c++

Object Storage Arubacloud
0 głosów
1,329 wizyt
pytanie zadane 13 listopada 2019 w C i C++ przez disi22 Początkujący (300 p.)

Witam, 

Mam do zrobienia zadanie oto jego treść: . Proszę napisać funkcję, która przyjmuje tablicę liczb zmiennoprzecinkowe i rozmiar tablicy, i odwraca kolejność elementów w tablicy

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;


int zadanie_dom4()
{

   int tab[100],n,temp,i,j;

	cout<<"Napisz ilosc elementow w tablicy ";
	cin>>n;

	for(i=0;i<n;i++)
	{
		cout<<"element "<<i+1<<":";
		cin>>tab[i];
	}

	for(i=0,j=n-1;i<n/2;i++,j--)
	{
		temp=tab[i];
		tab[i]=tab[j];
		tab[j]=temp;
	}

	cout<<"\odwrocona tablica"<<endl;

	for(i=0;i<n;i++)
		cout<<tab[i]<<" ";


}


int main()
{

    cout<<zadanie_dom4();

    return 0;
}

oto moj kod, problemem jest ze nie wiem jak to zrobic dla liczb zmiennoprzecinkowych a nie calkowitych typu int

za wszelkie wskazowki z gory dziekuje :) !

komentarz 13 listopada 2019 przez tkz Nałogowiec (42,000 p.)
Zamień int na double, poza tym Twoja funkcja nic nie przyjmuje.
komentarz 13 listopada 2019 przez mokrowski Mędrzec (155,700 p.)

Sygnatura funkcji reverse_table(...) powinna wyglądać tak:

void reverse_table(float * table, std::size_t size);

 

1 odpowiedź

0 głosów
odpowiedź 13 listopada 2019 przez mmarszik Mądrala (7,390 p.)
Tam jest przykład jak to zrobic z pomocą biblioteki:

http://www.cplusplus.com/reference/algorithm/reverse/

Tylko zmień int na double i wprowadzanie danych z stdin.

Pozdrawiam
komentarz 14 listopada 2019 przez disi22 Początkujący (300 p.)

Hmm czy to ma sens? 

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;


double zadanie_dom()
{
    vector<double> tablica;


  for (double i=1; i<20; ++i) tablica.push_back(i);   // tablica 1-20

  reverse(tablica.begin(),tablica.end()); // odwrocenie tablicy 20-1


  cout << "odwrocona tablica:";
  for (vector<double>::iterator it=tablica.begin(); it!=tablica.end(); ++it)
    cout << ' ' << *it;
  cout << '\n';

  return 0;
}


int main ()
{
    zadanie_dom();
}

Tylko zastanawiam się ponieważ w poleceniu jest liczb zmiennoprzecinkowych, a tutaj przyjmujemy tablice 1-20 czyli liczby całkowite? 

komentarz 14 listopada 2019 przez mmarszik Mądrala (7,390 p.)
Nie wiem czy ma snens, ale na pierwszy rzut oka bardzo ładnie wygląda.
komentarz 14 listopada 2019 przez disi22 Początkujący (300 p.)
Tylko popatrz na moje polecenie Proszę napisać funkcję, która przyjmuje tablicę liczb zmiennoprzecinkowe i rozmiar tablicy, i odwraca kolejność elementów w tablicy.

Czy tutaj mamy doczynienia z liczbami zmiennoprzecinkowymi tylko dlatego ze uzylismy double?
Z mojego kodu powyżej dostajemy tablcie 1,2,3,4... 19 czyli liczby całkowite
komentarz 14 listopada 2019 przez mmarszik Mądrala (7,390 p.)
Dla podkreślenia tego faktu że pracujesz na liczbach zmiennoprzecinkowych, możesz wpisać wartości z jakimić cyframi po przecinku, np. 1.1, 2,31, 3,23, -0.911, itd.
komentarz 14 listopada 2019 przez mmarszik Mądrala (7,390 p.)
I jeszcze jedno, nie wczytujesz liczba ze standardowego wejścia, tylko z tablicy - ale takie drobiazgi pozostawiam Tobie żebyś dopracował :)
komentarz 14 listopada 2019 przez disi22 Początkujący (300 p.)
Tylko, że rozmiar tablicy przyjmuje mi tutaj pętla for (double i=1; i<20; ++i) i w zaleznosci co wpisze w i<20(tutaj np 25) tyle liczb dostane i to całkowitych,

dla przykładu i<50 to na ekranie wyświetlone zostanie 1,2,3...30,31...48,49 i tyle a nie wiem jak właśnie zapisać kod żeby dostać liczby typu 1.1, 2.31 itp :(
komentarz 14 listopada 2019 przez mmarszik Mądrala (7,390 p.)
komentarz 15 listopada 2019 przez disi22 Początkujący (300 p.)
#include <iostream>
#include <algorithm>
using namespace std;

int zadanie_dom()


{
    double tab[ 8 ] = { 8.13, 5.67, 1.09, 3.827, 999.1, 666.236, 10.5, 69 };

    cout << "Tablica a przed odwroceniem: \n";
    for( int i = 0; i < 8; i++ )
    {
        cout << tab[ i ] << '\n';
    }
    cout << '\n';

    reverse( tab, tab + 8 );

    cout << "Tablica a po odwroceniu: \n";
    for( int i = 0; i < 8; i++ )
    {
        cout << tab[ i ] << '\n';
    }
    cout << '\n';
    return 0;
}






int main ()
{
    zadanie_dom();
}

Hmm po paru godzinach, w końcu udało mi się dojść do takiego kodu. 
Ma to sens mysle, ale czy ktoś to może ocenić ?

Pozdrawiam i dziękuje za pomoc! :)

komentarz 15 listopada 2019 przez mmarszik Mądrala (7,390 p.)
Bez tekstowania, na oko, wygląda bardzo ładnie.

Podobne pytania

+1 głos
1 odpowiedź 1,046 wizyt
pytanie zadane 13 stycznia 2020 w C i C++ przez Hubertius Bywalec (2,970 p.)
+1 głos
2 odpowiedzi 213 wizyt
pytanie zadane 27 listopada 2018 w C i C++ przez Levy Nowicjusz (240 p.)
0 głosów
1 odpowiedź 1,164 wizyt

92,626 zapytań

141,486 odpowiedzi

319,843 komentarzy

62,008 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!

...