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

Data una matrice, stampare:
1) il valore massimo e il valore minimo fra gli elementi di ciascuna riga;
2) il valore massimo e il valore minimo fra gli elementi di ciascuna colonna;
3) il valore massimo e il valore minimo fra tutti gli elementi

mostra soluzione

01/*
02CLAUDIO CARDINALE III AI
03Data una matrice, stampare:
041) il valore massimo e il valore minimo fra gli elementi di ciascuna riga;
052) il valore massimo e il valore minimo fra gli elementi di ciascuna colonna;
063) il valore massimo e il valore minimo fra tutti gli elementi
07*/
08#include<stdio.h>
09#define MAX 1000
10int main(){
11     
12    //dichiarazioni
13     
14    int r,c,j,i,mat[MAX][MAX],posmini=0,posminj=0,posmaxi=0,posmaxj=0,posminr[MAX],posmaxr[MAX],posminc[MAX],posmaxc[MAX];
15     
16     
17    //acquisizione dati
18     
19    //lunghezza matrice
20    do{
21        printf("inserire r : ");
22        scanf("%d",&r);
23        printf("inserire c : ");
24        scanf("%d",&c);
25    }while(r<1 || r>=MAX || c<1 || c>=MAX);
26     
27         
28    //acquisizione dati
29     
30    for(i=0;i<r;i++)
31        for(j=0;j<c;j++){
32            printf("inserire il valore alla riga %d ed alla colonna %d : ",i+1,j+1);
33            scanf("%d",&mat[i][j]);
34        }
35     
36     
37    //calcoli
38     
39    //1°
40     
41    for(i=0;i<r;i++){
42        posminr[i]=0;
43        posmaxr[i]=0;
44        for(j=0;j<c;j++)
45            if(mat[i][j]<mat[i][posminr[i]])
46                posminr[i]=j;
47            else if(mat[i][j]>mat[i][posmaxr[i]])
48                posmaxr[i]=j;
49    }
50     
51    //2°
52     
53    for(j=0;j<c;j++){
54        posminc[j]=0;
55        posmaxc[j]=0;
56        for(i=0;i<r;i++)
57            if(mat[i][j]<mat[posminc[j]][j])
58                posminc[j]=i;
59            else if(mat[i][j]>mat[posmaxc[j]][j])
60                posmaxc[j]=i;
61    }
62     
63    //3°
64     
65    for(i=0;i<r;i++)
66        for(j=0;j<c;j++)
67            if(mat[i][j]<mat[posmini][posminj]){
68                posmini=i;
69                posminj=j;
70            }else if(mat[i][j]>mat[posmaxi][posmaxj]){
71                posmaxi=i;
72                posmaxj=j;
73            }
74     
75     
76    //visualizzazione risultati
77     
78    printf("valori massimi e minimi righe :\n");
79    for(i=0;i<r;i++)
80        printf("riga %d : max = %d, min = %d\n",i+1,mat[i][posmaxr[i]],mat[i][posminr[i]]);
81     
82    printf("valori massimi e minimi colonne :\n");
83    for(i=0;i<c;i++)
84        printf("colonna %d : max = %d, min = %d\n",i+1,mat[posmaxc[i]][i],mat[posminc[i]][i]);
85     
86    printf("massimo valore totale : %d, minimo valore totale : %d\n",mat[posmaxi][posmaxj],mat[posmini][posminj]);
87}

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