-1
I’m doing an exercise where the user inserts the data of a vehicle (brand, year, price) in a struct
.
After that, the user enters a value.
To struct
resulting shall show only the data of the vehicles that are below the value entered by the user.
The IDE shows that there are the following errors: 1. in the first block bold: -variable result (that would be the resulting struct) created, but not used 2. in the second bold block: (car*)&result is a pointer (I did not understand where is pointer, since I did not insert and saw no need, since I created a resulting structure) 3. in the third block bold: comment equal to the previous
#include <stdio.h>
#include <string.h>
#include <ctype.h>
typedef struct{
char marca[15];
int ano;
float preco;
}carro;
void cabecalho();
int main(){
carro filtrar[5], **resultado[5];**
float preco_escolhido;
int cont = 0;
cabecalho();
for (int i = 0 ; i <5 ; i++){
printf("Insira o marca do veículo: ");
fflush(stdout);
fgets(filtrar[i].marca, 15, stdin);
fflush(stdout);
printf("Insira o ano do veículo: ");
fflush(stdout);
scanf("%d", &filtrar[i].ano);
while (isdigit(filtrar[i].ano)){
printf("Insira o ano do veículo: ");
fflush(stdout);
scanf("%d", &filtrar[i].ano);
}
printf("Insira o preço do veículo: ");
fflush(stdout);
scanf("%f", &filtrar[i].preco);
while (!isdigit(filtrar[i].preco)){
printf("Insira o preço do veículo: ");
fflush(stdout);
scanf("%f", &filtrar[i].preco);
}
getchar();
}
printf("Insira o valor máximo que deseja pagar: ");
fflush(stdout);
scanf("%f", &preco_escolhido);
//o código abaixo deveria inserir o valor da estrutura geral, na estrutura com a especificação,
//no caso o valor menor que o escolhido pelo usuário.
for (int i = 0 ; i<5 ; i++){
if (filtrar[i].preco <= preco_escolhido){
**resultado.marca[cont] = filtrar[i].marca;
resultado.ano[cont] = filtrar[i].ano;
resultado.preco[cont] = filtrar[i].preco;**
cont++;
}
}
printf("\nForam encontrado(s) %d veículo(s) abaixo de R$ %.2f.\n",cont, preco_escolhido);
for (int i = 0 ; i <cont ; i++){
printf("==== Veículos encontrados abaixo de R$ %.2f======\n",preco_escolhido);
**printf("Modelo: %s\n",resultado.marca[i]);
printf("Ano: %d\n",resultado.ano[i]);
printf("Preço: %.2ff\n",resultado.preco[i]);**
}
return 0;
}
This passage:
while (isdigit(filtrar[i].ano)){ printf("Insira o ano do veículo: "); fflush(stdout); scanf("%d", &filtrar[i].ano); }
, has no sense, idem for price. The functionisdigit
checks whether the character as parameter is a digit.– anonimo