求教~c语言的单循环问题

图片说明

上面是题目,下面这个是我的代码...晕...没办法输出结果,请问要怎么改呢?

#include<stdlib.h>
int main(){
    int s,x,t,max,max1,num,num1;
    float y;
    printf("请输入奖金总额:\n");
    scanf("%d",&s);
    num=0;
    printf("请输入要猜的数额:\n");
    while(1){
        scanf("%d",&x);
        max=s-x;
        max1=abs(max);
        if(t<max1){
            t=max1;
            num=1;
        }
        else if(t==max)
            num++;
            num1+=num;
    }
    printf("共猜中%d人",num);
    y=s/num;
    printf("可分的奖金:%.2f元",y);
    return 0;
}

你的while没有退出分支,一直在等待输入,所以没有输出

错误,:死循环;
问题:太乱了
#include
#include
int main(){
int s,x,t,max,max1,num,num1,mannumber,i;
float y;
printf("请输入公司人数:\n");
scanf("%d",&mannumber);
printf("请输入奖金总额:\n");
scanf("%d",&s);
num=0;
printf("请输入要猜的数额:\n");
for(i=0;i<mannumber;i++){
scanf("%d",&x);
max=s-x;
max1=abs(max);
if(t<max1)
{
t=max1;
num=1;

}
else if(t==max)
num++;
num1+=num;
}
printf("共猜中%d人",num);
y=s/num;
printf("可分的奖金:%.2f元",y);
return 0;
}