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?
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