PDA

View Full Version : programma c++


Tanatofobico
17-10-2014, 17:18
Buongiorno a tutti, sono studente e devo sostenere un esame di informatica.
Ho appena iniziato col c++, e ci hanno detto di fare un programma che ordini tot numeri interi in ordine crescente, io ho iniziato con tre. Non so cosa ho sbagliato, ho fatto probabilmente errori stupidi, ma non avevo mai visto una schermata di compilazione così tragica. Mi pare di individuare qualche punto critico, ma francamente non saprei come correggerlo... per quanto riguarda la logica del programma, ci è stata vagamente suggerita e quella applicata mi sembra giusta.



#include <iostream>

using namespace std;

int scambio (int, int, int);

int main (){
int a,b,c;

cin>>a>>endl;
cin>>b>>endl;
cin>>c>>endl;

a=scambio(x);
b=scambio(y);
c=scambio(z);

cout<<a<<b<<c<<endl;
return 0;
}

int scambio (int* x, int* y, int* z) {
int x,y,z,k;
if (x<y) {
k=*x;
*x=*y;
*y=k;
}
if (x<z) {
k=*x;
*x=*z;
*z=k;
}
if (y<z) {
k=*y
*y=*z
*z=k
}
return;
}

WarDuck
17-10-2014, 19:39
Suggerimento:


int scambio (int, int, int);

...

int scambio (int* x, int* y, int* z) {
...
}


E poi nel main:

a=scambio(x);
b=scambio(y);
c=scambio(z);

Tanatofobico
19-10-2014, 09:31
Grazie mille, sospettavo in effetti di quei punti :D

gianmpu
19-10-2014, 11:03
Per quanto riguarda la logica dell'algoritmo, se il numero di elementi da ordinare è maggiore di tre, si tratta di ordinare un array di numeri
Per fare questo ci sono molti algoritmi diversi più o meno performanti.
Nel tuo caso, visto che è un esercizio molto semplice, senza andare a scomodare la ricorsività e le prestazioni di altri algoritmi più efficienti, potresti usare un semplice bubble sort
http://it.wikipedia.org/wiki/Bubble_sort
;)