Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20
  1. #11
    Utente di HTML.it L'avatar di Guglie
    Registrato dal
    Dec 2002
    Messaggi
    1,572
    sono un fagiano...
    per curiosità p[0,2] che cosa faceva?
    perchè non mi restituiva neanche un errore..
    powered by GNU/Linux Gentoo
    A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!

  2. #12
    Originariamente inviato da Guglie
    sono un fagiano...
    per curiosità p[0,2] che cosa faceva?
    perchè non mi restituiva neanche un errore..
    non lo so
    ma nn l'ho mai vista come sintassi.Cmq se sei su linux(gcc) tanti "errori" del genere non sono segnalati o sono tra i warning.
    Modifica cmq anche il ciclo for come ti ho detto io sopra altrimenti nn và cmq
    ciaoo
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  3. #13
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558
    Originariamente inviato da andrea_NET-_DSL



    si ma cmq nel programma postato da lardoman non và bene la sezione di accesso ai dati della matrice.
    I due cicli for devono essere "uno dentro l'altro" come ho postato sopra


    Nn ho mai provato e forse mi sbaglio,ma se un ciclo contiene una sola istruzione non si possono omettere le graffe?

  4. #14
    Originariamente inviato da Lardoman
    Nn ho mai provato e forse mi sbaglio,ma se un ciclo contiene una sola istruzione non si possono omettere le graffe?
    infatti per il for di "mezzo" si possono anche non mettere ma il primo deve "contenere" anche il secondo for...

    Io ho fatto sempre cosi' e visto cosi' dappertutto.Se ci pensi i due for lavorano insieme,scorrendo la matrice,quindi..

    ciao
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  5. #15
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    codice:
    #include <iostream>
    
    using namespace std;
    
    int main() {
    
            int p[3][3];
    
            // inizializzazione
            for(int i=0; i<3; i++)
                    for(int k=0; k<3; k++)
                            p[i][k] = 0;
    
            p[0][2] = 1;
    
            // stampa a video
            for (int i = 0; i < 3; i++)
                    for (int j = 0; j < 3; j++)
                            cout << "valore di [" << i << ", " << j << "]: " << p[i][j] << endl;
    Quello che dice Lardoman sull'omissione delle graffe è corretto.
    Slack? Smack!

  6. #16
    Originariamente inviato da Sergio Pedone
    codice:
    #include <iostream>
    
    using namespace std;
    
    int main() {
    
            int p[3][3];
    
            // inizializzazione
            for(int i=0; i<3; i++)
                    for(int k=0; k<3; k++)
                            p[i][k] = 0;
    
            p[0][2] = 1;
    
            // stampa a video
            for (int i = 0; i < 3; i++)
                    for (int j = 0; j < 3; j++)
                            cout << "valore di [" << i << ", " << j << "]: " << p[i][j] << endl;
    Quello che dice Lardoman sull'omissione delle graffe è corretto.
    come logica si.
    Il for anche senza graffe comprende FINO E SOLO l'espressione successive.
    Quindi il primo for comprende il secondo che a sua volta la stampa...ma su tutti i libri ho visto sempre con le graffe messe come ho fatto io.
    Non ho mai provato cosi'...cmq una cosa in + che so
    ciauz e grazie
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  7. #17
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    La mia intenzione era di comfermare quanto detto da lardoman.
    Personalmente, come te, utilizzo sempre le graffe, in modo
    tale da non doverle aggiungere, nel caso in cui debba mettere
    mano al codice.

    Ciao.
    Slack? Smack!

  8. #18
    Originariamente inviato da Sergio Pedone
    La mia intenzione era di comfermare quanto detto da lardoman.
    Personalmente, come te, utilizzo sempre le graffe, in modo
    tale da non doverle aggiungere, nel caso in cui debba mettere
    mano al codice.

    Ciao.
    sisi certo
    ciao
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  9. #19
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558
    Originariamente inviato da Sergio Pedone
    La mia intenzione era di comfermare quanto detto da lardoman.
    Personalmente, come te, utilizzo sempre le graffe, in modo
    tale da non doverle aggiungere, nel caso in cui debba mettere
    mano al codice.

    Ciao.
    Certamente,anch'io le metto sempre se nn altro perchè il codice è + ordinato.

    La mia era solo una puntualizzazione sul fatto che quel codice cmq dovrebbe funzionare.

    Ciao

  10. #20
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Guglie
    sono un fagiano...
    per curiosità p[0,2] che cosa faceva?
    perchè non mi restituiva neanche un errore..
    Me l'ha spiegato Andrea Simonassi un po' di tempo fa, perchè l'avevo chiesto anch'io avendolo trovato su di un codice scritto da altri.

    La virgola serve a separare espressioni: praticamente tutto ciò che c'è prima della virgola viene semplicemente valutato. La parte successiva è la vera indicizzazione. Nel caso particolare p[0,2] è esattamente equivalente a scrivere p[2] ossia il puntatore al primo elemento della terza riga della matrice. Lo 0 viene semplicemente valutato ed essendo una costante ha una ed una sola valutazione: egli stesso!

    Provate ad eseguire questo codice, che, all'apparenza, non sembra avere molto senso:
    codice:
    #include <stdio.h>
    
    int main() {
       int p[3][3];
       int i;
       for (i=0; i<3; i++) {
          *p[printf("Ciao, sono il primo elemento della riga %d\n", i), i] = 0;
       }
       
       return 0;
    }
    Questo è uno dei tanti aspetti oscuri del C (una delle tante schifezze che si possono fare in C), come questa:
    codice:
    #include <stdio.h>
    
    int main() {
       char *stringa = "Ciao a tutti\n";
       int i = 0;
       for (;i["Cosa scriverà"];putchar(stringa[i++]));
       
       return 0;
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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 © 2026 vBulletin Solutions, Inc. All rights reserved.