Buscar

95 Materiais para Ambrosio

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

#include <stdio.h>
#include <string.h>
int i, j, n, k = 0;
struct material aux;
struct material {
 char nome[25];
 float preco;
};
void ordemA(struct material vet[]) {
 for(i = 0; i < k; i++) {
 for(j = i + 1; j < k; j++) {
 if(strcasecmp(vet[j].nome, vet[i].nome) < 0) {
 aux = vet[i];
 vet[i] = vet[j];
 vet[j] = aux;
 }
 }
 }
}
void ordena(struct material vet[]) {
 for(i = 0; i < n; i++) {
 for(j = i + 1; j < n; j++) {
 if(vet[j].preco < vet[i].preco) {
 aux = vet[i];
 vet[i] = vet[j];
 vet[j] = aux;
 }
 }
 }
}
int main() {
 float din, gasto = 0;
 struct material mats[100];
 struct material comprados[100];
 
 scanf("%f", &din);
 scanf("%d", &n);
 
 for(i = 0; i < n; i++) {
 scanf(" %s %f", mats[i].nome, &mats[i].preco);
 }
 
 ordena(mats);
 
 for(i = 0; i < n; i++) {
 if((mats[i].preco + gasto) <= din) {
 gasto += mats[i].preco;
 comprados[k] = mats[i];
 k++;
 }
 }
 
 printf("\n\n");
 
 ordemA(comprados);
 
 for(i = 0; i < k; i++) {
 printf("%s %.2f\n", comprados[i].nome, comprados[i].preco);
 }
 
 printf("%.2f\n", din - gasto);
 return 0;
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando