fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define MAX 25
  4.  
  5. struct appuntamento{
  6. int mese;
  7. int giorno;
  8. int num;
  9. int ora;
  10. char descrizione[20];
  11. };
  12.  
  13. void inserisciApp(struct appuntamento **, int *);
  14. void visualizzaApp(struct appuntamento **, int);
  15. void scambia(struct appuntamento **, struct appuntamento **);
  16.  
  17. int main(){
  18. struct appuntamento *A[MAX];
  19. int num=0, scelta;
  20. char c;
  21. do{
  22. printf("|-MENU' SCELTA-|\n");
  23. printf("1) Inserisci appuntamento\n");
  24. printf("2) Visualizza tutti gli appuntamenti\n");
  25. printf("3) Visualizza appuntamenti in un dato periodo\n");
  26. printf("0) Termina programma\n");
  27. printf("\nScelta: ");
  28. scanf("%d", &scelta);
  29. printf("\n");
  30. switch(scelta){
  31. case 1:
  32. inserisciApp(A, &num);
  33. break;
  34. case 2:
  35. visualizzaApp(A, num);
  36. break;
  37. //case 3:
  38. //break;
  39. default:
  40. break;
  41. }
  42. }while(scelta!=0);
  43. return 0;
  44. }
  45.  
  46. void inserisciApp(struct appuntamento **pA, int *n){
  47. int ind;
  48. char c='s';
  49. do{
  50. pA[*n]=(struct appuntamento*)malloc(sizeof(struct appuntamento));
  51. printf("Appuntamento n.%d\n", *n+1);
  52. do{
  53. printf("Specificare mese [min.1(Gennaio), max.12(Dicembre)]: ");
  54. scanf("%d", &(pA[*n]->mese));
  55. }while((pA[*n]->mese)<1 || (pA[*n]->mese)>12);
  56. do{
  57. printf("Specificare giorno [min.1, max.31]: ");
  58. scanf("%d", &(pA[*n]->giorno));
  59. }while((pA[*n]->giorno)<1 || (pA[*n]->giorno)>31);
  60. pA[*n]->num=1;
  61. for(int j=0; j<*n; j++){
  62. if(pA[j]->mese==pA[*n]->mese && pA[j]->giorno==pA[*n]->giorno){
  63. (pA[*n]->num)++;
  64. (pA[j]->num)++;
  65. }
  66. }
  67. do{
  68. printf("Specificare ora [min.0, max.23]: ");
  69. scanf("%d", &(pA[*n]->ora));
  70. }while((pA[*n]->ora)<0 || (pA[*n]->ora)>23);
  71. printf("Specificare descrizione: ");
  72. scanf("%s", pA[*n]->descrizione);
  73. fflush(stdin);
  74. ind=*n;
  75. while(ind>0){
  76. if(pA[ind]->mese==pA[ind-1]->mese){
  77. if(pA[ind]->giorno<pA[ind-1]->giorno)
  78. scambia(&pA[ind], &pA[ind-1]);
  79. }else if(pA[ind]->mese<pA[ind-1]->mese)
  80. scambia(&pA[ind], &pA[ind-1]);
  81. ind--;
  82. }
  83. printf("\nContinuare con l'inserimento? (s/n) ");
  84. scanf("%c", &c);
  85. (*n)++;
  86. printf("\n");
  87. }while(c!='n' && *n<=MAX);
  88. return;
  89. }
  90.  
  91. void visualizzaApp(struct appuntamento **pA, int n){
  92. int i=0;
  93. while(i<n){
  94. printf("Appuntamento n.%d\n", i+1);
  95. printf("Mese: %d\n", pA[i]->mese);
  96. printf("Giorno: %d\n", pA[i]->giorno);
  97. printf("Ora: %d\n", pA[i]->ora);
  98. printf("Descrizione: %s\n", pA[i]->descrizione);
  99. printf("Num. appuntamento: %d\n\n", pA[i]->num);
  100. i++;
  101. }
  102. return;
  103. }
  104.  
  105. void scambia(struct appuntamento **A, struct appuntamento **B){
  106. struct appuntamento **temp;
  107. temp=A;
  108. A=B;
  109. B=temp;
  110. return;
  111. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.c: In function ‘main’:
prog.c:20:7: warning: unused variable ‘c’ [-Wunused-variable]
  char c;
       ^
prog.c: In function ‘inserisciApp’:
prog.c:61:5: error: ‘for’ loop initial declarations are only allowed in C99 mode
     for(int j=0; j<*n; j++){
     ^
prog.c:61:5: note: use option -std=c99 or -std=gnu99 to compile your code
stdout
Standard output is empty