PDA

Visualizza la versione completa : [C] stampare usando la notazione vettoriale applicata al puntatore e la notazione dei puntatori applicata ai vettori


luc8924
26-11-2014, 16:31
Ciao :ciauz::ciauz::ciauz:a tutti io ho un piccolo problema volevo chiedere come posso risolverlo: " I vettori li puoi stampare usando la notazione vettoriale applicata al puntatore e la notazione dei puntatori applicata ai vettori."




#include <stdio.h>
#include <stdlib.h>


int main()
{
int voti[200]; //•dichiari un array contenente i voti di 200 studenti
int studenti;
int nstud[200];
int *ptr;
int i,j;

//ptr punt al primo elemento del vettore
ptr=voti;

printf("Inserire un numero di studenti (massimo 200): ");
while (scanf("%d", &studenti) != 1 || (studenti<1||studenti>200))
{
printf("Inserire numero corretto da 1 a 200: \n");
/* rimuovo eventuali caratteri rimasti nel buffer fino al newline */
while (getchar() != '\n');
}
for (i=0;i<studenti;i++)
{
printf("Inserire voto dello studente n %d compreso tra 18 e 30: ",i+1);
//controllo sia stato inserito un voto esatto
while (scanf("%d", ptr+i) != 1 || (*(ptr+i)<18||*(ptr+i)>30))
{
printf("Inserire voto corretto compreso tra 18 e 30: ");
/* rimuovo eventuali caratteri rimasti nel buffer fino al newline */
while (getchar() != '\n');
}
}

for (i = 0; i < studenti; i++)
{
nstud[i] = i + 1;
}

printf("Numero |I voti inseriti sono: \n");
printf("studenti: |Vettore: Puntatore:\n");


//inizializzo ciclo for per stampare i voti degli studenti
for (i = 0; i < studenti; i++)
{
printf("%d | %d | %d \n",nstud[i], voti[i], *(ptr + i));
}
system("Pause"); //SECONDO MODO
printf("\n\n\n");
printf("Utilizzo il secondo metodo:\n\n");

printf("Inserire un numero di studenti (massimo 200): ");
while (scanf("%d", &studenti) != 1 || (studenti<1||studenti>200))
{
printf("Inserire numero corretto da 1 a 200: \n");
//rimuovo eventuali caratteri rimasti nel buffer fino al newline
while (getchar() != '\n');
}



for (i=0;i<studenti;i++)
{
printf("Inserire voto dello studente n %d compreso tra 18 e 30: ",i+1);


while ((scanf("%d", &voti[i]) != 1) || (voti[i]<18||voti[i]>30))
{
printf("Inserire voto corretto compreso tra 18 e 30: ",i+1);
// rimuovo eventuali caratteri rimasti nel buffer fino al newline
while (getchar() != '\n');
}
}

for (i = 0; i < studenti; i++)
{
nstud[i] = i + 1;
}

printf("Numero |I voti inseriti sono: \n");
printf("studenti: |Vettore: | Puntatore:\n");




for (i = 0; i < studenti; i++)
{
printf("%d | %d | %d \n",nstud[i], voti[i], *(ptr + i));
}
system("Pause");
return 0;
}

oregon
26-11-2014, 16:41
Hai un problema ... ma la domanda precisamente qual ?

luc8924
26-11-2014, 16:48
stampare i vettori usando la notazione vettoriale applicata al puntatore e la notazione dei puntatori applicata ai vettori. come posso fare?

oregon
26-11-2014, 16:53
Conosci l'operatore

->

luc8924
26-11-2014, 17:11
Ancora a lezione lo devono spiegare il simbolo ->.
La domanda fatta dal prof. che non riesco a capire e':


"I vettori li puoi stampare usando la notazione vettoriale applicata al puntatore e la notazione dei puntatori applicata ai vettori."


io pensavo di avere gia' applicata la notazione vettoriale al puntatore *(ptr + i), nello specifico:
printf("%d | %d | %d \n",nstud[i], voti[i], *(ptr + i));


ma non riesco a capire la notazione dei puntatori applicata ai vettori, come li possa stampare.

Loading