Oppure

Loading
08/12/10 20:10
Pitagora
Prendere una striinga e stamparla al contrario vale? :rotfl:
aaa
08/12/10 20:49
Giarados
Postato originariamente da Pitagora:

Prendere una striinga e stamparla al contrario vale? :rotfl:


L'algoritmo che avevo originariamente pensato era esattamente questo però per alcune ragioni ho deciso di deviare:
1- Non sai quanto è lunga la stringa in input
2- E' poco elegante usare un array statico di char
3- Anche usando un array dinamico rimane poco elegante chiedere all'utente la lunghezza in cifre dell'input
4- Ho approfittato dell'occasione per scrivere 2 funzioni che mi potrebbero tornare utili in futuro :rofl:
aaa
08/12/10 21:10
Numa Pompilio
Postato originariamente da Giarados:

Postato originariamente da Numa Pompilio:

Postato originariamente da Giarados:
Basta stampare per prima la cifra 0, poi la cifra 1, poi la cifra 2, sino alla cifra n-1.


In questo modo le stampa in ordine.........o sbaglio?
Dovrebbe partire da n-1 per finire a 0


Dipende se le vedi da DX verso SX o al contrario :rofl:


beh, in ogni linguaggio la posizione 0 è la prima da SX.....
aaa
08/12/10 21:26
Giarados
beh, in ogni linguaggio la posizione 0 è la prima da SX.....


Se prendi in input un valore int:

4567

Secondo me è più conveniente vederlo come

4*10^3 + 5*10^2 + 6*10^1 + 7*10^0

Anche perchè non essendo una stringa non abbiamo modo di manipolare singolarmente le cifre tramite un indice. Se fosse stata una stringa, ergo un'array, allora naturalmente:
char* numero = {'4', '5', '6', '7'};
numero[0]=='4';
numero[1]=='5';
numero[2]=='6';
numero[3]=='7';
Ultima modifica effettuata da Giarados 08/12/10 21:27
aaa
09/12/10 11:36
VB.NET_Program_91
Puoi fare semplicemente in questo modo:
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
	int a[10],n,i;
    printf("Il numero che vuoi inserire da quanti elementi è composto? (max 10 cifre): ");
    scanf("%d",&n);
   
   for (i=1;i<=n;i++){
	    printf("Inserisci il %d numero: ",i);
	   scanf("%d",&a[i]);
	   }
	   printf("Il numero al contrario è:");
	   for (i=n;i>=1;i--){
		   printf("%d",a[i]);
		   }
	return 0;
}

Spero di esserti stato di aiuto :)
aaa
09/12/10 12:55
Alex
i vostri algoritmi però usano tutti un array...non è più comodo usare un intero?
aaa
10/12/10 9:39
VB.NET_Program_91
Guarda io penso che usando un array l' algoritmo risulti meno statico, + funzionale e soprattutto il programmatore non si complica ulteriormente la vita oltre al fatto di non dover dichiarare funzioni temp o contatore :D ... cmq poi dipende dalle esigenze di chi chiede :)
aaa
10/12/10 11:27
jegantms
Salve a tutti... io ho risolto così!


#include <stdio.h>
#include <stdlib.h>

int main()
{
  int num,contr=0;
  printf("Inserisci un intero:\n");
  scanf("%d",&num);
  do
  {
    contr=contr*10+num%10;
  }
  while(num/=10);
  printf("Il numero invertito è:\n%d",contr);
  return 0;
}
Ultima modifica effettuata da jegantms 10/12/10 11:31
aaa