emiliano30
16-05-2005, 19:36
cosa c'è di sbagliato in questo programma? :mc:
centrano sicuramente i puntatori...
Scrivere un programma che inizializza un vettore di dimensione 100 con interi random tra 1 e 1000.
Poi, con un sistema “menu” permetta di effettuare le seguenti operazioni:
- trova il valore max
- trova il valore min
- trova la media aritmentica
Il sistema di menu deve esser gestito con puntatori a funzioni.*/
#include<stdlib.h>
#include<stdio.h>
int menu (void);
int trovaMax(int *pt);
int trovaMin(int *pt);
int media(int *pt);
int main(){
int *pt;/*pt è un puntatore ad un intero*/
int n[100];
int scelta,i;
scelta=0;
for(i=0;i<100;i++){
n[i]=1+(rand()%1000);
}/*fine comando for*/
while ((scelta)!=4){
switch (scelta){
case 1:
system("clrscr");
trovaMax(pt);
break;
case 2:
system("clrscr");
trovaMin(pt);
case 3:
system("clrscr");
media(pt);
}/*fine comando switch*/
}/*fine comando while*/
return 0;
}/*fine della funzione main*/
/*funzione menu*/
int menu(void)
{
int menuScelta; /*è la varaiabile in cui verrà memorizata la scelta*/
printf("inserisci la tua scelta:\n\n"
"1- trova il valore massimo\n"
"2- trova il valore minimo \n"
"3- trova la media\n"
"4- esci dal programma\n" );
scanf("%d",&menuScelta);/*l'utente ha inserito la propria scelta*/
if(menuScelta<1||menuScelta>4){
printf("è stata inserita uan scelta non valida\n");
}/*fine del ramo if*/
return menuScelta;
}/*fine funzione menu*/
int trovaMax(int *pt)
{
int n[100];
int i;
int max;
max=n[0];
for(i=1;i<100;i++){
if(n[i]>max){
max=n[i];
}//chiude if
printf("il valore massimo è %i:\n",max);
}//chiude for
return max;
}//fine funzione
int trovaMin(int *pt)
{
int n[100];
int i;
int min;
min=n[0];
for(i=1;i<100;i++){
if(n[i]<min){
min=n[i];
}//chiude if
printf("il valore massimo è %i:\n",min);
}//chiude for
return min;
}//fine funzione
int media(int *pt)
{
int n[100];
int i, media,somma;
for (i=1;i<100;i++){
somma+=n[i];
}
media=somma/100;
printf("la media è\n",media);
return media;
}
centrano sicuramente i puntatori...
Scrivere un programma che inizializza un vettore di dimensione 100 con interi random tra 1 e 1000.
Poi, con un sistema “menu” permetta di effettuare le seguenti operazioni:
- trova il valore max
- trova il valore min
- trova la media aritmentica
Il sistema di menu deve esser gestito con puntatori a funzioni.*/
#include<stdlib.h>
#include<stdio.h>
int menu (void);
int trovaMax(int *pt);
int trovaMin(int *pt);
int media(int *pt);
int main(){
int *pt;/*pt è un puntatore ad un intero*/
int n[100];
int scelta,i;
scelta=0;
for(i=0;i<100;i++){
n[i]=1+(rand()%1000);
}/*fine comando for*/
while ((scelta)!=4){
switch (scelta){
case 1:
system("clrscr");
trovaMax(pt);
break;
case 2:
system("clrscr");
trovaMin(pt);
case 3:
system("clrscr");
media(pt);
}/*fine comando switch*/
}/*fine comando while*/
return 0;
}/*fine della funzione main*/
/*funzione menu*/
int menu(void)
{
int menuScelta; /*è la varaiabile in cui verrà memorizata la scelta*/
printf("inserisci la tua scelta:\n\n"
"1- trova il valore massimo\n"
"2- trova il valore minimo \n"
"3- trova la media\n"
"4- esci dal programma\n" );
scanf("%d",&menuScelta);/*l'utente ha inserito la propria scelta*/
if(menuScelta<1||menuScelta>4){
printf("è stata inserita uan scelta non valida\n");
}/*fine del ramo if*/
return menuScelta;
}/*fine funzione menu*/
int trovaMax(int *pt)
{
int n[100];
int i;
int max;
max=n[0];
for(i=1;i<100;i++){
if(n[i]>max){
max=n[i];
}//chiude if
printf("il valore massimo è %i:\n",max);
}//chiude for
return max;
}//fine funzione
int trovaMin(int *pt)
{
int n[100];
int i;
int min;
min=n[0];
for(i=1;i<100;i++){
if(n[i]<min){
min=n[i];
}//chiude if
printf("il valore massimo è %i:\n",min);
}//chiude for
return min;
}//fine funzione
int media(int *pt)
{
int n[100];
int i, media,somma;
for (i=1;i<100;i++){
somma+=n[i];
}
media=somma/100;
printf("la media è\n",media);
return media;
}