|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2002
Città: Prov. di Torino
Messaggi: 457
|
Problemi con Output di un programma in C
Devo iniziare il 2° anno di informatica:
questo è l'esercizio di C: ---------------------- Qual è l'output del seguente frammento di codice ? Codice:
#include <stdio.h>
int main()
{
int V[] = {1,3,5,7,9};
int *p;
printf("%d\n", V[1]);
printf("%d\n", *(V+2));
p = V+1;
printf("%d\n", *p);
printf("%d\n", *(p+2));
p = &V[1];
printf("%d\n", *p);
printf("%d\n", *p+1);
getch();
}
3 5 3 7 3 4 qualcuno mi spiega passaggio per passaggio perchè ?? per esempio cosa significa *(V+2) ???? Garzie a tutti ::tony
__________________
::tony design |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non chiamarlo problemi di output xchè sono problemi di comprensione del linguaggio
V è un vettore di 5 elementi... p è un puntatore ad intero... Nella prima printf stampa V[1] cioè 3... Nella seconda stampa *(V+2) cioè il contenuto (*) dell'indirizzo puntato da V+2... V equivale all'indirizzo di V[0]...quindi V+2 equivale all'indirizzo di V[2]... p = V + 1 assegna a p l'indirizzo di V[1] (V+1 equivale a &V[1])... La terza printf stampa il contenuto (*) dell'indirizzo puntato da p, cioè V[1]... La quarta stampa il contenuto (*) dell'indirizzo puntato da p+2, cioè V[3]... p = &V[1] assegna a p l'indirizzo (&) di V[1]... La quinta printf stampa il contenuto (*) di p...cioè V[1]... La sesta stampa il contenuto (*) di p (cioè V[1]) e ci aggiunge 1...cioè stampa 4... |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: May 2002
Città: Prov. di Torino
Messaggi: 457
|
Quote:
ciao ciao ::tony
__________________
::tony design |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2002
Città: Prov. di Torino
Messaggi: 457
|
Ho un'altro problema:
Devo riscrivere questo frammento di codice con due cicli annidati while: Codice:
#include <stdio.h>
int main()
{
int i1,i2;
for(i1=2; i1 < 10; i1 += 2)
{
for(i2 = 12; i2 > i1; --i2)
printf("X");
printf("\n");
}
getch();
}
Codice:
#include <stdio.h>
int main()
{
int i1,i2;
i1 = 2;
while(i1 < 10)
{
i2 = 12;
while(i2 > i1)
{
printf("X");
printf("\n");
--i2;
}
i1 += 2;
}
getch();
}
::tony
__________________
::tony design |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Codice:
#include <stdio.h>
int main()
{
int i1,i2;
i1 = 2;
while(i1 < 10)
{
i2 = 12;
while(i2 > i1)
{
printf("X");
--i2;
}
printf("\n");
i1 += 2;
}
getch();
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:12.



















