infotemp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // tempo.cpp : Defines the entry point for the console application.
  2. /*
  3. scrivere un programma che permetta la gestione delle temperature del mese di gennaio di 20 città italiane il programma deve visualizzare in ordine
  4. le cità che hanno avuto la temperatura media mensile più alta.
  5. */
  6. #include "stdafx.h"
  7. #include <iostream>
  8. #define NN 10
  9. #define NR 5//31
  10. #define NC 3 //20
  11. typedef struct {
  12. char nome[NN + 1];
  13. float gradi;
  14. }TEMPERATURE;
  15. using namespace std;
  16. void carica(TEMPERATURE v[NR][NC]);
  17. void media(TEMPERATURE v[NR][NC]);
  18. //void visualizza(TEMPERATURE v[NR][NC]);
  19. int main()
  20. {
  21. TEMPERATURE a[NR][NC];
  22. carica(a);
  23. media(a);
  24. system("pause");
  25. return 0;
  26. }
  27. void carica(TEMPERATURE v[NR][NC]) {
  28. for (int i = 0; i < NR; i++) {
  29. if (i < 1) {
  30. for (int j = 0; j < NC; j++) {
  31. printf("inserire il nome della città\n");
  32. scanf_s("%s", v[i][j].nome, NN + 1);
  33. printf("inserire i gradi registati\n");
  34. scanf_s("%f", &v[i][j].gradi, sizeof(float));
  35. }
  36. }
  37. else {
  38. for (int j = 0; j < NC; j++) {
  39. printf("inserire i gradi registati\n");
  40. scanf_s("%f", &v[i][j].gradi, sizeof(float));
  41. }
  42. }
  43. }
  44. }
  45. void media(TEMPERATURE v[NR][NC]) {
  46. float media[NR];
  47. float somma= 0;
  48. float mag = 0;
  49. int c = 0;
  50. for (int i = 0; i < NC; i++) {//NC=20 citta
  51. for (int j = 0; i < NR; i++) {//NR=31 mesi
  52. somma += v[i][j].gradi;
  53. media[i] = somma / NR;
  54. }
  55. somma = 0;
  56. }
  57. mag = media[0];
  58. for (int h = 0; h < NR; h++) {
  59. if (mag < media[h]) {
  60. mag = media[h];
  61. c = h;
  62. }
  63. }
  64. printf("la città con la temperatura più alta %s con %f\n",v[c][0].nome, mag);
  65. }