Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C]HELP: I char maledetti

    Salve a tutti, mi sono appena iscritto a questo forum per porre questo quesito:Perchè al C le variabili e gli array di tipo char nn vanno giù? io ho fatto questo semplice programma di sort, con gli interi ed i float va un amore ma se voglio farlo con i caratteri mi da un casino di problemi che nn so risolvere!!!Potete aiutarmi perfavore?? questo è il sorgente C :

    #include <stdio.h>

    #define MAX_SIZE 100

    void ord_selez(char [],int );

    void main ()
    {
    int i,n;
    char a[MAX_SIZE];

    do
    {
    printf("Inserisci il size dell'array: ");
    scanf("%d",&n);
    }while (n<1 || n>MAX_SIZE);

    for(i=0;i<n;i++)
    {
    printf("Inserisci il valore dell'array di posizione %d ",i+1);
    scanf("%c",&a[i]);
    }
    ord_selez(a,n);

    printf("L'array ordinato vale:");

    for(i=0;i<n;i++)
    {
    printf(" %c ",a[i]);
    }
    printf("\n");
    }

    void ord_selez(char a[],int n)
    {

    int i,j=0;
    char ins;

    for(i=1;i<n;i++)
    {
    ins=a[i];
    j=i-1;

    while (j>=0 && ins<a[j])
    {
    a[j+1]=a[j];
    j--;
    }

    a[j+1]=ins;
    }
    }

    spero che possiate darmi una mano

  2. #2
    Il codice sembra funzionare correttamente, qual'è il problema esattamente ?
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3
    praticamente dopo aver inserito gli elementi da ordinare il programma da errore ed esce,ma questo solo con i tipi char

  4. #4

  5. #5
    iil tipico errore di windows xp, il quale chiede di inviare l'errore alla microsoft per verificarne la causa.Cmq provate a compilarlo ed eseguirlo e vi renderete subito conto.Vi ricordo che questo errore lo fa solo con i char

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    A parte il problema del buffer della scanf a cui ho posto rimedio con la fflush(stdin)

    codice:
    	do
    	{
    		printf("Inserisci il size dell'array: ");
    		scanf("%d",&n);
    		fflush(stdin);
    	}while (n<1 || n>MAX_SIZE);
    
    	for(i=0;i<n;i++)
    	{
    		printf("Inserisci il valore dell'array di posizione %d ",i+1);
    		scanf("%c",&a[i]);
    		fflush(stdin);
    	}
    tutto il resto ha funzionato ...

    (la fflush(stdin) usala solamente con il compilatore Visual C)

    Se si manifesta un errore di quel tipo, devi dirci anche quali sono i dati in input ...
    Io ho usato

    5

    h
    w
    g
    d
    s

    e ha funzionato

  7. #7
    Ok ! grazie mille senza di voi nn ci sarei mai riuscito!potrei sapere meglio come si utilizza questa fflush(stdin), cioè a cosa serve?

  8. #8

  9. #9
    ok grazie 1000!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.