Oppure

Loading
31/10/09 14:43
stella.p


/*Scrivere un programma C++ che acquisisce da tastiera un numero intero
positivo n<=50 e successivamente le componenti reali
u1,u2,....,un
di un vettore u e ne determina un k-riordinamento ciclico delle componenti
(k intero), cioè il vettore v ottenuto da u traslando tutte le componenti di |k|
posti verso destra o sinistra a seconda del segno di k (gli elementi che escono
da un lato rientrano dall'altro); infine il programma deve scrivere il vettore v
sul video*/

#include <stdio.h> 
#include <stdlib.h> 
main() 
{ 
int n,i,k; float u[50],v[50]; 
printf("\n\ninserisci un numero intero positivo n="); 
scanf("%d",&n); 
if (n>50) return 0; 
for(i=0;i<n;i++) 
{ printf("\n dammi la componente numero"); 
printf(" %d del vettore u ",i+1); 
scanf("%f",&u[i]); } 
printf("\n\nil vettore u ottenuto e':"); 
for (i=0;i<n;i++) 
{printf("\n %f",u[i]);} 
printf("\n\ninserisci il valore k:"); 
scanf("%d",&k); 
printf("\n\n il vettore v ottenuto e':"); 
for (i=0;i<n;i++) 
{ 
if(i+k<n) 
printf("\n\n%f",u[i+k]); 
else 
printf("\n\n%f",u[i+k-n]); 
} 
system ("PAUSE"); return 0; 
}  


Alla fine il programma dovrebbe scrivere sul video (come dice la prof.), per esempio:
Se u=12489
per k=-1 si ha v=24891
per k=+2 si ha v=89124
invece a me esce:
per k=+2 esce v=48912
per k=-1 esce v=01248
Dov'è che il codice è sbagliato?8-|
grazie a tutti coloro che mi aiuteranno..

[i]EDIT by HeDo: Ricordati di racchiudere il codice tra i tag code, così lo rendi più leggibile. Per questa volta l'ho fatto io, ma dalla prossima presta più attenzione.
Ultima modifica effettuata da HeDo 01/11/09 12:25
aaa
31/10/09 15:48
ingMark
il primo errore che vedo è che se i = 0 e k = -1 cerchi di stampare n[-1] che ovviamente non esiste, ecco perchè ti stampa lo zero. :k:

devi modicare quei due if dove decidi che cosa stampare.
e secondo me devi distinguere quando k è positivo o negativo ;)
Ultima modifica effettuata da ingMark 31/10/09 15:52
aaa
31/10/09 18:14
stella.p
ciao e grazie per il tuo consiglio.. ma ancora non mi esce:(
non ho capito bene dov'è che devo cambiare il codice..
aaa
31/10/09 20:55
Matthew
Quando posti un codice sorgente, mettilo nei tag code perchè così non si capisce niente
aaa