logo Thecsea.it



Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License



scolastica » esercizi » terza superiore » linguaggio c

Testo dell'esercizio

Scrivere un programma che definisca una tabella di N*M interi e che, utilizzando le funzioni sotto indicate, svolga le seguenti operazioni:
1 - inizializzi la tabella inserendo M valori in ogni riga
2 - per ogni riga della tabella calcoli il valore minimo, memorizzando il risultato in modo da ricordare tutti i minimi calcolati
3 - calcoli il minimo dei minimi
4 - calcoli quante volte il valore minimo, calcolato al punto 3, è contenuto tra i minimi, calcolato al punto 2.

Funzioni:
- funzione che inizializzi un insieme di numeri
- funzioni che calcoli il valore minimo di un insieme di numeri
- funzione che calcoli quante volte un dato valore x è ripetuto in un insieme di numeri.

mostra soluzione

01/*
02CLAUDIO CARIDNALE 3AI
03Scrivere un programma che definisca una tabella di N*M interi e che, utilizzando le funzioni sotto indicate, svolga le seguenti operazioni:
04    1 - inizializzi la tabella inserendo M valori in ogni riga
05    2 - per ogni riga della tabella calcoli il valore minimo, memorizzando il risultato in modo da ricordare tutti i minimi calcolati
06    3 - calcoli il minimo dei minimi
07    4 - calcoli quante volte il valore minimo, calcolato al punto 3, è contenuto tra i minimi, calcolato al punto 2.
08     
09Funzioni:
10    - funzione che inizializzi un insieme di numeri
11    - funzioni che calcoli il valore minimo di un insieme di numeri
12    - funzione che calcoli quante volte un dato valore x è ripetuto in un insieme di numeri.
13*/
14#include<stdio.h>
15#define MAX 1000
16void inizializza(int vet[MAX], int n);
17int min(int vet[MAX], int n);
18int n_volte(int vet[MAX], int n, int x);
19 
20int main(){
21     
22    //dichiarazioni
23    int mat[MAX][MAX],minimi[MAX],minimo,volte,n,m,x,i;
24     
25    //acquisizione lunghezze
26    do{
27        printf("inserire il numero di righe : ");
28        scanf("%d",&n);
29        printf("inserire il numero di colonne : ");
30        scanf("%d",&m);
31    }while(n<1 || n>= MAX || m<1 || m>= MAX);
32     
33    //inizializzaizone
34    for(i=0;i<n;i++){
35        printf("riga %d:\n",i+1);
36        inizializza(mat[i],m);
37    }
38     
39    //calcolo minimo di ogni righe
40    for(i=0;i<n;i++)
41        minimi[i] = min(mat[i],m);
42     
43    //calcolo minimo dei minimi
44    minimo = min(minimi,n);
45     
46    //calcolo volte in cui il minimo è contenuto nell'elenco dei minimi
47    volte = n_volte(minimi,n,minimo);
48     
49    //visualizzaizone risultati
50    printf("numero minimo : %d, comparso : %d volte\n",minimo,volte);
51}
52 
53void inizializza(int vet[MAX], int n){
54     
55    //dichiarazioni
56    int i;
57     
58    //calcoli
59    for(i=0;i<n;i++){
60        printf("inserire il valore numero %d : ",i+1);
61        scanf("%d",&vet[i]);
62    }
63}
64 
65int min(int vet[MAX], int n){
66     
67    //dichiarazioni
68    int i,pos=0;
69     
70    //calcoli
71    for(i=1;i<n;i++)
72        if(vet[i]<vet[pos])
73            pos = i;
74     
75    //risultati
76    return vet[pos];
77}
78 
79int n_volte(int vet[MAX], int n, int x){
80    //dichiarazioni
81    int i,volte=0;
82     
83    //int calcoli
84    for(i=0;i<n;i++)
85        if(vet[i]==x)
86            volte++;
87     
88     
89    //risultati
90    return volte;
91}

Testi Consigliati:

Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line
C guida alla programmazione: Conoscere lo standard C11 dalle basi del linguaggio alle direttive del preprocessore (Programmare con C Vol. 1)
Programmazione in C

torna



Copyright © 2004-2025 thecsea.it (Claudio Cardinale - cardi@thecsea.it)! Tutti i diritti riservati. - contattaci