#include <iostream>
using namespace std;
void wczytaj ( double A[], int n)
{
for(int i=0 ; i<n ; i++)
{cout<<"A["<<i<<"]";
cin>>A;
}
}
void wyczytaj(double A[], int n )
{for(int i=0; i<n ; i++)
cout<<A<<'\t';
}
void sortuj ( double A[], int i)
{
for(int j=i-1; j>0; j--)
for(int i=0; i<j; i++)
if(A>A[i+1])
{
swap ( A, A[i+1]);
}
}
int main()
{
int i;
cin>>i;
double A;
wczytaj(A,i);
wyczytaj(A,i);
sortuj(A,i);
cout<<endl;
wyczytaj(A,i);
}
Jakim cudem to działa jak nie podałem mu n, funkcje wywołuj od i a takiej nie mam?????
sortowanie
Otrzymałeś(aś) rozwiązanie do zamieszczonego zadania? - podziękuj autorowi rozwiązania! Kliknij
Re: sortowanie
Nie wiem co miałeś na myśli, pisząc, że program działa. Nie da się go nawet skompilować.
Program po poprawieniu wszystkich błędów prezentuje się następująco:
Przekazujesz tablicę do funkcji, więc musisz zadeklarować - no cóż - tablicę (o rozmiarze zmiennej i, gdzie i zostało wprowadzone przez użytkownika.
Zapis typu jest całkowicie błędny. Zapamiętaj, kiedy odwołujesz się do tablicy, to zawsze musisz podać element, który masz na myśli.
Co do tego:
Jeżeli przekazujesz do funkcji wartość x to sama funkcja używa wartości x pod "swoją" nazwą, określoną w nagłówku.
Przykładowo:
Podajesz do funkcji liczbę całkowitą x (zwaną również parametrem faktycznym funkcji).
Jak widzisz funkcja podczas wykonywania bierze wartość x i "dopasowuje" do swojej listy argumentów (zwaną również parametrami formalnymi).
Tworzona jest kopia x, nowa liczba całkowita, pod nazwą y, która przyjmuje wartość x i jest używana przez funkcję.
Efektem końcowym jest, że y przyjmuje wartość 10, a funkcja zwraca wartość 11.
Program po poprawieniu wszystkich błędów prezentuje się następująco:
Kod: Zaznacz cały
#include <iostream>
using namespace std;
void wczytaj ( double A[], int n)
{
for(int i = 0 ; i < n ; i++)
{
cout<<"A["<<i<<"]: ";
cin>>A[i];
}
}
void wyczytaj(double A[], int n )
{
for(int i = 0; i < n ; i++)
cout<<A[i]<<'\t';
}
void sortuj ( double A[], int i)
{
for(int j = i-1; j > 0; j--)
for(int i = 0; i < j; i++)
if(A[i] > A[i+1])
{
swap ( A[i], A[i+1]);
}
}
int main()
{
int i;
cin>>i;
double A[i];
wczytaj(A,i);
wyczytaj(A,i);
sortuj(A,i);
cout<<endl;
wyczytaj(A,i);
}
Zapis typu
Kod: Zaznacz cały
A>A[i+1]
Co do tego:
Każda funkcja ma listę zmiennych/parametrów które jej podajesz (tuż po typie zwracanym i nazwie).Jakim cudem to działa jak nie podałem mu n, funkcje wywołuj od i a takiej nie mam?????
Jeżeli przekazujesz do funkcji wartość x to sama funkcja używa wartości x pod "swoją" nazwą, określoną w nagłówku.
Przykładowo:
Kod: Zaznacz cały
int funkcja(int y)
{
y = y + 1;
return y;
}
int main()
{
int x = 10;
funkcja(x);
}
Jak widzisz funkcja podczas wykonywania bierze wartość x i "dopasowuje" do swojej listy argumentów (zwaną również parametrami formalnymi).
Tworzona jest kopia x, nowa liczba całkowita, pod nazwą y, która przyjmuje wartość x i jest używana przez funkcję.
Efektem końcowym jest, że y przyjmuje wartość 10, a funkcja zwraca wartość 11.