Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Aritmetica dei puntatori

    Ho un problema su questo esercizio non so come risolverlo:

    Riscrivere il seguente programma utilizzando esclusivamente l'aritmetica dei
    puntatori invece dell'indicizzazione (eliminare la variabile i e tutti gli usi dell'operatore []).

    codice:
    int main(int argc, char *argv[])
    {
    int i;
    for (i=1; i<argc; i++)
    printf("%s%s", argv[i], (i<argc-1) ? " " : "");
    printf("\n");
    return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    *(argv+i) equivale ad argv[i]


    P.S. Per il codice utilizza i tag CODE ... !
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ok scusami... Comunque devo eliminare anche l indice nel for e tutte le parentesi quadre

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    E non hai nessuna idea ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Me lo chiedi per mettermi alla prova oppure non lo sai manco tu? comunque io avevo fatto se ricordo bene in questo modo:

    codice:
    int main(int argc, char *argv[])
    {
    int *p;
    for (p = 1; p<argc; p++)
    printf("%s%s", *(argv + p), (p<argc-1) ? " " : "");
    printf("\n");
    return 0;
    }
    è giusto?

  6. #6
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Me lo chiedi per mettermi alla prova oppure non lo sai manco tu?
    Probabilmente ti voleva fare ragionare sul problema , e poi ti avrebbe mostrato una soluzione .

    L' uso che fai di un puntatore ad interi , è orribile , è come usare una scarpa come schiaccianoci

    Comunque al posto del for e delle variabili potresti usare un while

    codice:
    while(*argv!=0)
    {
    
    
        argv++;
    
    }
    oppure
    for(;*argv!=0;argv++)
    P.s Non mi sarei intromesso nella discussione , visto che chi ti ha risposto è più adatto di me ,se non fosse , che non mi è piaciuta la tua risposta , infondo ti stanno aiutando , bisogna ricordarselo
    Tecnologia

  7. #7
    Nono ma infatti non era una critica, chiedo scusa se è potuto sembrare così ho chiesto perchè non capivo per quale motivo me lo avesse chiesto... Comunque siamo in un forum puoi intrometterti eccome e riguardo ai puntatori ahuuahhuauhauh si hai ragione Grazie per la risposta ) Riguardo al for se metto diverso da zero non mi si ferma mai è diverso dal confrontarlo con la i e dato che non saprei con chi confrontarlo non so minimamente come fare... Se non ti dispiace ho messo un altro post riguardo i file se vuoi vederlo mi fai un piacere Scusami oregon...

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Cyber-X91!
    Scusami oregon...
    Di nulla ... in effetti la mia domanda era fatta perché tu ci ragionassi un po' ...

    Comunque, anche se il regolamento vieta la "pappa pronta" eccoti un esempio di codice

    codice:
    int main(int argc, char **argv)
    {
    	while(*(++argv))
    		printf("%s%s", *argv, *(argv+1) ? " " : "");
    	
    	printf("\n");
    	return 0;
    }
    che però dovrai tentare di studiare tu ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Certamente e grazie... non capisco qual è la condizione di uscita del while

  10. #10
    Dato che nell esercizio c'è:

    codice:
     (i < argc - 1)
    Io con cosa lo devo confrontare dato che i non ce l'ho piu? Con l'indirizzo di argc ?

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.