-2
I would like to know how do I save the data and present it at the end; I have not yet been taught to do so. How do I resolve item C of the question
Consider that, for each of the farm hotels of the region, the name of the hotel has been registered, its distance from the city center (DA), the average number of visitors in the last holiday (V) and the type of access to the hotel (AC being 0 - access not asphalted; 1 - access asphalted). Build a program that reads this data and at the end inform:
a) The number of hotels more than 15km from the centre;
b) The average number of visitors on the last holiday, in hotels with unpaved access;
c) The name and distance from the centre in Km, of all the paved access hotels that had fewer than 1,000 visitors.
Input example :
Hotel A, DA=10, V=100, AC=0
Hotel B, DA=20, V=50, AC=1.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char hotel[20], w[1];
int V, AC, DA, centro=15, q1=0, q2=0, q3=0, q4;
printf("REGISTRO DE HOTEIS\n\n");
do{
printf("\nHotel :"); scanf("%s",&hotel);
printf("Distancia do centro em km : "); scanf("%d",&DA);
printf("Visitantes no ultimo feriado : "); scanf("%d",&V);
printf("Acesso ao hotel\n Digite \n"
"0 - acesso não asfaltado\n"
"1 - acesso asfaltado : "); scanf("%d",&AC);
if(DA>centro)
q2++; //vai guardar quantos hoteis tem longe do centro
if(AC==0){
q1++; //vai contar as repetições, nesse caso o numero de hoteis cadastrados
q3 += V; //vai guardar todos os visitantes do ultimo feriado de todos os hoteis
}
if( V<1000 && AC==1)
printf("\nHotel %s Distancia %d km. Asfaltado com menos de 1.000 visitantes.",hotel,DA);
//c) O nome e a distância do centro em Km,
//de todos os hotéis de acesso asfaltado que tiveram menos de 1.000 visitantes.
printf("\n\nNovo Registro S(sim) N(nao)? "); scanf("%s",w);
}while(strcmpi(w,"S")==0); //W = WHILE
q4 = q3/q1; //media de visitantes de todos os hoteis
/*c) O nome e a distância do centro em Km,
de todos os hotéis de acesso asfaltado que tiveram menos de 1.000 visitantes.*/
if( V<1000 && AC==1)
printf("\nHotel %s Distancia %d km. Asfaltado com menos de 1.000 visitantes.",hotel,DA);
//a) O número de hotéis que distam mais de 15km do centro;
printf("\nHoteis a 15km do centro : %d\n",q2);
//b) A quantidade média de visitantes no último feriado, nos hotéis com acesso não asfaltado;
printf("A media de visitantes nos hoteis com acesso sem asfalto : %d\n",q4);
return 0;
}
In C a string containing a single character occupies 2 positions: the character itself and the terminator character ' 0'. If it is only a character declare only
char w;
and instead of double quotes (") use single quotes(') and compare directly:w == 'S'
and use%c
reading. I don’t know the functionstrcmpi
maybe it’sstrcmp
. Here:scanf("%s",&hotel);
doesn’t have this &:scanf("%s", hotel);
.– anonimo
strcmpi code is to accept so many capital letters of minuscules. Thank you so much for the tips
– Leonardo Pinto Silva