ďťż

Ładny brzuch

Mam napisac funkcje wykonujące podstawowe operacje na tablicach(tzn. wczytywanie, wyświetlanie, liczenie średniej, max, min ) ale w zapisie wskaźnikowym. W innym zapisnei to niemam problemu z tym ale w wskaźnikowym to wogule nie wiem co i jak. Prosze o pomoc przy tym programie. W szkole pisałem go ale cos nie grało w nim:/



No co za problem?
Np. Wypełnianie, i wyświetlanie tablicy:
int* ptr; int tab[60]; ptr = tab; for(int i = 0; i < 60; i++;ptr++)*ptr = i; ptr = tab; for(int i = 0; i < 60; i++;ptr++)cout << *ptr << endl;
Ehh...

przykłady wskaźników mam ale cos mi nie gra w programie.

To może pokaż jakiś kod bo tak na sucho to trudno trafić w Twoje potrzeby.
Użytkownik reVis edytował ten post 09 grudzień 2006, 22:07


Oto ten program
#include<stdio.h> #include<conio.h> const int ROZMIAR=10; void wczytajtablice(float Tab[]) { clrscr(); int i=0; do { printf("Tab[%2d]=",i+1); scanf("%f",&Tab[i]); i++; } while(i!=ROZMIAR); } void wyswietltablice(float Tab[]) { int i=0; do { printf("\nTab[%2d]=%10.3f\n",i+1,Tab[i]); i++; } while(i!=ROZMIAR); } void main(void) { int*Wsk; for(Wsk=Tab;Wsk<Tab+10;Wsk++) { scanf("%d",Wsk); *Wsk*=2; printf("Tab[%2d]=%d",Wsk-Tab+1,*Wsk); getch(); } }

Niech go ktos poprawi zeby ten program wykonywał funkcje podstawowe operacje na tablicach(tzn. wczytywanie, wyświetlanie, liczenie średniej, max, min ) ale w zapisie wskaźnikowym.

widze ze nikt nie pomoze:/, dodam ze mam ten program do czwartku zrobic:/

a no czemu ma ci pomagać skoro rozkazujesz ?

Niech go ktos poprawi...

Zrobiłem coś takiego nie wiem czy o to dokładnie ci chodzi jeżeli nie to napisz dokładniej:
#include <iostream> #include <algorithm> using namespace std; void wyswietl(int *wsk_tab); void wypelnij(int *wsk_tab); int srednia(int *wsk_tab); int main(int argc, char *argv[]) { int tablica[10]; wypelnij(tablica); wyswietl(tablica); cout << "Srednia wynosi " << srednia(tablica); cin.get(); } void wypelnij(int *wsk_tab) { for(int i=0; i<10; i++) wsk_tab[i]=i; } void wyswietl(int *wsk_tab) { for(int i=0; i<10; i++) cout << wsk_tab[i] << endl; } int srednia(int *wsk_tab) { int pomocnicza=0; for(int i=0; i<10; i++) pomocnicza = wsk_tab[i] + pomocnicza; return pomocnicza; }
Użytkownik pura89 edytował ten post 11 grudzień 2006, 19:19
No fakt mój błąd, przepraszam.
Bardzo prosze o poprawienie mi mojego programu.

@pura89 zaraz sprawdze ten program i jak co to Cie poprosze o "udoskonalenie" i dziękuje za ten program narazie;]

w temacie pisze, że program ma być w c++. Więc napisałem.
Użytkownik pura89 edytował ten post 11 grudzień 2006, 19:20

w temacie pisze, że program ma być w c++. Więc napisałem.
Progrma działa Twój, ale mam prosbe czy mógłbys przerobic go zeby mozna było wpisywac wartosci liczb i zeby pokazyłaało wartosc największa i najmniejssza. Byłbym bardzo wdzieczny.


Progrma działa Twój, ale mam prosbe czy mógłbys przerobic go zeby mozna było wpisywac wartosci liczb i zeby pokazyłaało wartosc największa i najmniejssza. Byłbym bardzo wdzieczny.

No nie... kolega podał Ci już prawie całe zadanie, zrób przynajmniej tą część sam, wcale nie jest taka trudna - pomyśl <_<

Wczytywać możesz w pętli for np.
for(int i=0; i<10; i++) cin >> tablica[i];
A największą i najmniejszą wartość zrób tak:
Znajdź funkcje sortującą tablice od najmniejszej do największej. Napisz sobie swoją funkcję na zwracanie najmniejszej wartości tak, najpierw sortujesz tablice od najmniejszej do największej a potem zwracasz pierwszy element tablicy wtedy uzyskasz najmniejszą wartość tablicy, zwracając ostatni element tablicy uzyskasz największy wartość.

Coś takiego z tym wczytywaniem, ale z wartościami zrób sobie sam.

#include <iostream> #include <conio.h> #include <algorithm> using namespace std; void wyswietl(int *wsk_tab); void wypelnij(int *wsk_tab); int srednia(int *wsk_tab); int main(int argc, char *argv[]) { int tablica[10]; wypelnij(tablica); wyswietl(tablica); cout << "Srednia wynosi " << srednia(tablica); //cin.get(); getch(); } void wypelnij(int *wsk_tab) { for(int i=0; i<10; i++) cin >> wsk_tab[i]; cout << endl; } void wyswietl(int *wsk_tab) { for(int i=0; i<10; i++) cout << wsk_tab[i] << endl; } int srednia(int *wsk_tab) { int pomocnicza=0; for(int i=0; i<10; i++) pomocnicza = wsk_tab[i] + pomocnicza; return pomocnicza; }
Jeszcze można zrobić wskaźnik do zmiennej całkowitej.
Użytkownik pura89 edytował ten post 11 grudzień 2006, 21:01

Jeszcze można zrobić wskaźnik do zmiennej całkowitej.

Spróbowałem zrobic dla wartosci max i min ale jakos nie potrafie, oto wynik mojej pracy:
#include <iostream> #include <conio.h> #include <algorithm> using namespace std; void wyswietl(int *wsk_tab); void wypelnij(int *wsk_tab); int srednia(int *wsk_tab); int main(int argc, char *argv[]) { int tablica[10]; wypelnij(tablica); wyswietl(tablica); cout << "Srednia wynosi " << srednia(tablica); //cin.get(); getch(); { float liczba, licznik, srednia, suma; int max=0, min=0; char znak; do { cout<<"Podaj dowolną liczbę\n"<<; cin>>(" %f", &liczba); liczba ++; suma = suma , liczba; if (liczba >= max) max=liczba; if (licznik = 1) min=liczba; if (liczba <= min) min=liczba; cout<<"Czy to koniec wprowadzania t/n?\n\n"); znak=getch(); } } void wypelnij(int *wsk_tab) { for(int i=0; i<10; i++) cin >> wsk_tab[i]; cout << endl; } void wyswietl(int *wsk_tab) { for(int i=0; i<10; i++) cout << wsk_tab[i] << endl; } int srednia(int *wsk_tab) { int pomocnicza=0; for(int i=0; i<10; i++) pomocnicza = wsk_tab[i] + pomocnicza; return pomocnicza; } while(znak!='t'); cout<<" Największa liczba podana przez Ciebie to: %d\n",max); cout<<" Najmniejsza liczba podana prz Ciebie to: %d\n",min); getch(); }

Bardzo proszę, niech mi ten program ktos poprawi. Próbowałem zrobic ale jakos mi to nie wychdzi, jestem noobkiem z c++. Będe bardzo wdzieczny.

Widać, że w ogóle nie czytałeś mojego poprzedniego posta :/
#include <iostream> #include <conio.h> #include <algorithm> using namespace std; void wyswietl(int *wsk_tab); void wypelnij(int *wsk_tab); int srednia(int *wsk_tab); void max_min(int *wsk_tab); int main(int argc, char *argv[]) { int tablica[10]; wypelnij(tablica); wyswietl(tablica); cout << "Srednia wynosi " << srednia(tablica) << endl; max_min(tablica); //cin.get(); getch(); } void wypelnij(int *wsk_tab) { for(int i=0; i<10; i++) cin >> wsk_tab[i]; cout << endl; } void wyswietl(int *wsk_tab) { for(int i=0; i<10; i++) cout << wsk_tab[i] << endl; } int srednia(int *wsk_tab) { int pomocnicza=0; for(int i=0; i<10; i++) pomocnicza = wsk_tab[i] + pomocnicza; return pomocnicza; } void max_min(int *wsk_tab) { sort(wsk_tab, wsk_tab+10); cout << "Najwiekszy element wnosi: " << wsk_tab[9] << ", najmniejszy wynosi " << wsk_tab[0] << endl; }

Bardzo dziękuje ale jeszcze jedna uwaga, ten program nie liczy średniej tylko sume:(

Ale Ty masz problemy :omg:

średnia = suma / ilość składników


Ale Ty masz problemy :omg:

średnia = suma / ilość składników

Wiem ale nie w tym był sęk ale doszedłem juz do tego i liczy mi juz średnią.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •