diff options
| author | cassiopc <cassiopc@gmail.com> | 2012-08-31 09:02:27 +0000 |
|---|---|---|
| committer | cassiopc <cassiopc@gmail.com> | 2012-08-31 09:02:27 +0000 |
| commit | 2948fe8d6055f6dfe6289e64bce426b5e0bb552f (patch) | |
| tree | 2cff8a28f2bcf1f21116b952738b5e683e11c193 /boca-1.5.1/doc/tests/fontes/multas-yes.c | |
| parent | 37d5a8f2b6ecf585f91c2f7c804145853f0ca1e9 (diff) | |
| download | boca-2948fe8d6055f6dfe6289e64bce426b5e0bb552f.tar.gz boca-2948fe8d6055f6dfe6289e64bce426b5e0bb552f.zip | |
inclusion of dir 1.5.1 for boca
Diffstat (limited to 'boca-1.5.1/doc/tests/fontes/multas-yes.c')
| -rw-r--r-- | boca-1.5.1/doc/tests/fontes/multas-yes.c | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/boca-1.5.1/doc/tests/fontes/multas-yes.c b/boca-1.5.1/doc/tests/fontes/multas-yes.c new file mode 100644 index 0000000..3729d0b --- /dev/null +++ b/boca-1.5.1/doc/tests/fontes/multas-yes.c @@ -0,0 +1,85 @@ +/* Copyright 2001 Maratona de Programacao do IME-USP -- cef@ime.usp.br + */ + +#include <stdio.h> + +typedef struct +{ + char nome[100]; + char nomeconv[100]; + + int pontos; +} +m_familia; + +#define MAX 21 + +char conv(char c) +{ + if(c >= 'A' && c <= 'Z') return (c += 'a' - 'A'); + return(c); + +} + + +int menor(char v[80], char w[80]) +{ + int i=0; + + while(i < 80 && v[i] == w[i])i++; + return(v[i] < w[i]); +} + + +int main(int argc, char *argv[]) +{ + FILE * ent; + int cont = 0; + int n, i,j, multa, nmult, min; + m_familia familia[20]; + + ent = stdin; + + fscanf(ent, "%d", &n); + while (n > 0){ + cont++; + printf("Familia %d\n", cont); + + for (i = 0; i < n; i++){ + fscanf(ent, "%s", &(familia[i].nome[0])); + j = 0; + while(familia[i].nome[j] != 0) { + familia[i].nomeconv[j]=conv(familia[i].nome[j]); + j++; + } + familia[i].nomeconv[j]=0; + + familia[i].pontos = 0; + } + fscanf(ent, "%d", &multa); + nmult = 0; + + while(multa > 0){ + nmult++; + min = 0; + for (i = 0; i < n; i++) + if (familia[i].pontos < familia[min].pontos || + (familia[i].pontos == familia[min].pontos && + menor(familia[i].nomeconv, familia[min].nomeconv))) + min = i; + printf("Multa %d %s", nmult, familia[min].nome); + familia[min].pontos += multa; + if ( familia[min].pontos >= MAX) + printf(" carteira suspensa\n"); + else printf("\n"); + fscanf(ent, "%d", &multa); + } + printf("\n"); + + fscanf(ent, "%d", &n); + } + fclose(ent); + return(0); +} + + |