fork download
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. // Dichiarazione delle variabili
  5. char tipo_cliente, tipo_offerta, tipo_residenza;
  6. float kw_impegnati, kw_consumo, kw_annui, costo_kw, costo_trasporto = 1.69, accise, costo_commercializzazione, iva;
  7. float totale, iva_totale, totale_con_iva;
  8.  
  9. // Chiedere se il cliente è privato o business
  10. printf("Il cliente è privato o business? (P/B): ");
  11. scanf(" %c", &tipo_cliente); // Nota lo spazio prima di %c per gestire il carattere di nuova linea
  12.  
  13. // Chiedere se è residente o non residente
  14. if (tipo_cliente == 'P' || tipo_cliente == 'p') {
  15. printf("Il cliente è residente o non residente? (R/N): ");
  16. scanf(" %c", &tipo_residenza); // Nota lo spazio prima di %c
  17. } else {
  18. tipo_residenza = 'N'; // I clienti business sono sempre non residenti
  19. }
  20.  
  21. // Chiedere i kW impegnati
  22. printf("Quanti kW ha impegnato il cliente? ");
  23. scanf("%f", &kw_impegnati);
  24.  
  25. // Chiedere il consumo in kWh
  26. printf("Qual è il consumo in kWh del cliente? ");
  27. scanf("%f", &kw_consumo);
  28.  
  29. // Chiedere il consumo annuo in kWh
  30. printf("Qual è il consumo annuo in kWh del cliente? ");
  31. scanf("%f", &kw_annui);
  32.  
  33. // Chiedere se si vuole un'offerta a prezzo fisso o variabile
  34. printf("Vuoi un'offerta a prezzo fisso o variabile? (F/V): ");
  35. scanf(" %c", &tipo_offerta); // Nota lo spazio prima di %c
  36.  
  37. // Calcolare il costo di commercializzazione
  38. if (tipo_cliente == 'P' || tipo_cliente == 'p') {
  39. costo_commercializzazione = 3.0; // Costo di commercializzazione per privato
  40. } else {
  41. costo_commercializzazione = 10.0; // Costo di commercializzazione per business
  42. }
  43.  
  44. // Calcolare il costo per kWh in base all'offerta e al tipo di cliente
  45. if (tipo_cliente == 'P' || tipo_cliente == 'p') {
  46. if (tipo_offerta == 'f' || tipo_offerta == 'F') {
  47. costo_kw = 0.193; // Costo per kWh fisso per privato
  48. } else {
  49. costo_kw = 0.14489; // Costo per kWh variabile per privato
  50. }
  51. } else {
  52. if (tipo_offerta == 'f' || tipo_offerta == 'F') {
  53. costo_kw = 0.185; // Costo per kWh fisso per business
  54. } else {
  55. costo_kw = 0.13489; // Costo per kWh variabile per business
  56. }
  57. }
  58.  
  59. // Aggiungere il costo della potenza impegnata
  60. float costo_potenza_impegnata = 0;
  61. if (kw_impegnati == 3) {
  62. costo_potenza_impegnata = 8.452;
  63. } else if (kw_impegnati == 4.5) {
  64. costo_potenza_impegnata = 16.833;
  65. } else if (kw_impegnati == 6) {
  66. costo_potenza_impegnata = 25.214;
  67. }
  68.  
  69. // Aggiungere il costo per il consumo annuo
  70. float costo_consumo_annuo = kw_annui * 0.004245;
  71.  
  72. // Calcolare le accise
  73. accise = kw_consumo * 0.0227;
  74.  
  75. // Aggiungere il costo di residenza
  76. float costo_residenza;
  77. if (tipo_cliente == 'P' || tipo_cliente == 'p') {
  78. if (tipo_residenza == 'R' || tipo_residenza == 'r') {
  79. costo_residenza = 9.0; // Costo per cliente privato residente
  80. } else {
  81. costo_residenza = 18.93; // Costo per cliente privato non residente
  82. }
  83. } else {
  84. costo_residenza = 18.93; // Cliente business sempre non residente
  85. }
  86.  
  87. // Calcolare il costo totale prima dell'IVA
  88. totale = (kw_consumo * costo_kw) + costo_commercializzazione + costo_potenza_impegnata + costo_consumo_annuo + accise + costo_trasporto + costo_residenza;
  89.  
  90. // Aggiungere l'IVA
  91. if (tipo_cliente == 'P' || tipo_cliente == 'p') {
  92. iva = 0.10; // IVA per cliente privato
  93. } else {
  94. iva = 0.22; // IVA per cliente business
  95. }
  96.  
  97. iva_totale = totale * iva;
  98. totale_con_iva = totale + iva_totale;
  99.  
  100. // Stampa del risultato
  101. printf("\nTotale della bolletta (senza IVA): %.2f Euro\n", totale);
  102. printf("IVA applicata: %.2f Euro\n", iva_totale);
  103. printf("Totale della bolletta (con IVA): %.2f Euro\n", totale_con_iva);
  104.  
  105. return 0;
  106. }
Success #stdin #stdout 0s 5292KB
stdin
/*  Berechnung des Hamming-Abstandes zwischen zwei 128-Bit Werten in 	*/
/*	einer Textdatei. 													*/
/*  Die Werte müssen auf einer separaten Zeile gespeichert sein			*/
/* 																		*/
/*	Erstellt: 17.5.2010													*/
/*  Autor: Thomas Scheffler												*/

#include <stdio.h>
#include <stdlib.h>

#define ARRAY_SIZE 32

unsigned Hamdist(unsigned x, unsigned y)
{
  unsigned dist = 0, val = x ^ y;
 
  // Count the number of set bits
  while(val)
  {
    ++dist; 
    val &= val - 1;
  }
 
  return dist;
}



int main (void)
{
	char hex;
	int i;
	int a[ARRAY_SIZE];
	int b[ARRAY_SIZE];
	int hamDist = 0;
	FILE* fp;
	
	//Arrays mit 0 initialisieren
	for (i = 0; i < ARRAY_SIZE; ++i)
	{
  		a[i] = 0;
  		b[i] = 0;
	}

	
	fp = fopen("hex.txt","r");
	if (fp == NULL) 
	{
		printf("Die Datei hex.txt wurde nicht gefunden!");
		exit(EXIT_FAILURE);
	}

	i=0;
	printf("1.Zeile einlesen.\n");

 	while((hex=fgetc(fp))!='\n' && hex != EOF)
    {
        a[i]=strtol(&hex,0,16);
		i++;
    }
	i=0;
	printf("2.Zeile einlesen.\n");

 	while((hex=fgetc(fp))!='\n' && hex != EOF)
    {
    	b[i]=strtol(&hex,0,16);
        i++;
    }
	fclose(fp);

	printf("Hamming-Abweichung pro Nibble:\n");
	for (i = 0; i < ARRAY_SIZE; ++i)
	{
		printf ("%i\t%i\t%i\n",a[i],b[i],Hamdist(a[i],b[i]));
		hamDist += Hamdist(a[i],b[i]);
	}
	printf ("\nHamming-Abweichung der Hash-Werte:%d\n",hamDist);
}

stdout
Il cliente è privato o business? (P/B): Quanti kW ha impegnato il cliente? Qual è il consumo in kWh del cliente? Qual è il consumo annuo in kWh del cliente? Vuoi un'offerta a prezzo fisso o variabile? (F/V): 
Totale della bolletta (senza IVA): 30.62 Euro
IVA applicata: 6.74 Euro
Totale della bolletta (con IVA): 37.36 Euro