你好我有一个litlle问题。我试图制作一个银行等待时间程序,但是当我用 scanf() 读取 0 值时,它没有读取或读取错误。我做了一些搜索,但注意到这解决了我的问题。
这是代码..它是C语言的。
#include <stdio.h>
int main(){
int c, n, t,i,d;//entradas do usuário (caixas, usuários, momento de chegada, tempo de atendimento
int menor_espera=0;// caixa de menor tempo de espera
int tempo_maximo = 20;// tempo maximo de espera por atencimento
int resultado=0;//Numero de pessoas com mais de 20 minutos de espera por atendimento
scanf(" %u %u %*c\n", &c, &n);// Lê o numero de caixas, numero de clientes no dia
if(c>0 && n>0){//iniciação só com valores positivos e possiveis c>1, n>1 (1 caixa e um cliente)
int caixa[c];// declara o um vetor de caixas
for(i=0;i<n;i++){// Loop de numero de usuários
scanf(" %u %u %*c\n", &t, &d);//Lê um cliente (T e D)
printf("print: %u %u\n", c, n);
int j;
for(j=0; j<c;j++){// loop de caixas
if(caixa[j]<caixa[menor_espera]){//chaca se o caixa atual é o primeiro caixa disponivel (caixa com menos tempo de uso)
menor_espera = j;//positivo, atualiza o caixa de menor espera
}
}if(caixa[menor_espera]-t>tempo_maximo){//checa se o cliente terá de esperar mais que o tempo maximo para ser atendido baseado na sua chegada
resultado++;//positivo, atualiza o contador de usuário que esperaram mais que o tempo maximo
}caixa[menor_espera] += d;// atualiza o tempo de uso do caixa que foi utilizado
}
printf("Resultado final: %d\n", resultado);// exibe resultado final
}getch();
}
这是一个输入
1 16
0 10
0 10
0 10
3 10
5 10
7 10
11 10
13 10
14 10
15 10
16 10
17 10
18 3
19 10
20 10
23 3
这就是我的输出
print: 10 0
print: 0 0
print: 0 3
print: 0 5
print: 0 7
print: 0 11
print: 0 13
print: 0 14
print: 0 15
print: 0 16
print: 0 17
print: 0 18
print: 19 10
print: 0 10
print: 3 3
print: 3 3
Resultado final: 16
但它不应该是这样的。
感谢任何帮助。如果我找到了解决方案,我会在这里发布。