Problema ad invertire le cifre!!

di il
3 risposte

Problema ad invertire le cifre!!

Ciao a tutti

Mi potete controllare questo codice, non riesco a capire perchè non si invertono come dico io, se ho sbagliato la procedura chiedo che me lo spiegate come si procede all'inversione.
es. 5623
inversione: 2356

ecco il codice:

#include<stdio.h>



int invertinum(int n);
int stampa(int n);



int mian(){

	int n,inv,print;


	printf("Inserisci n° fino a 4:\n");
		scanf("%d",&n);


	inv = invertinum(n);
	print = stampa(inv);
	

	return 0;
}



int invertinum(int n){

		int i,cont,inv;
		cont=1;
	
	for(i=1; i <= n ; i--){
		
		if(n(i) < n-1){
			inv = n(i);
				cont--;
		}
		
		else{

			inv = n-1;

		}
			
	}

	return inv;
		
}



int stampa(int n){

	printf("L'inversione è:%d",n);

}


Grazie in anticipo

3 Risposte

  • Re: Problema ad invertire le cifre!!

    Che linguaggio sarebbe questo?
    ?!?!
    
    int mian(){
    
    ?!?
    
          if(n(i) < n-1){
             inv = n(i);
    
    Cosa intenti esattamente per invertire le cifre? Devono essere 4 o possono essere meno? Se n=1900 deve restituire 0019 o 19?
  • Re: Problema ad invertire le cifre!!

    Ciao,

    Esattamente è il linguaggio c,
    me ne sono accorto dopo che ho sbagliato a scrivere al recente post, mi correggo -> int main(){}

    in pratica:

    1) devo inserire in input n° -> qualsiasi numero e di qualsiasi lunghezza.
    esempio: 5789356493
    2) devo prendere l'input e devo ordinare dal più piccolo al più grande
    l'uscita output è il seguente: 334556789

    Come devo sviluppare l'algoritmo?
  • Re: Problema ad invertire le cifre!!

    Devi considerare il numero come array di char e poi usare la qsort per ordinare i caratteri.
    Non è l'unico metodo, ma di certo è il più rapido
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int cmp (const void * a, const void * b)
    {
      return ( *(char *)a - *(char *)b );
    }
    
    int main ()
    {
      char s[64];
      int size;
    
      fgets (s,sizeof(s),stdin);
      size=strlen(s)-1;
      
      qsort(s,size, sizeof(char), cmp);
      printf ("%s",s);
      
      return 0;
    }
    
Devi accedere o registrarti per scrivere nel forum
3 risposte