关于计算少一的有关问题
关于计算少一的问题
#include<stdio.h>
#include<math.h>
int main()
{
int a[12],b[12],c[12],i,t,n,sum,M; //c[i]为月末剩余钱数
sum=0;//存起来的钱数总额
t=0;//超支的月份
for(i=0;i<12;i++)
{
scanf("%d",&a[i]); //输入每月的预算
b[i]=300-a[i]; //计算每月零花钱扣除预算的剩余
if(b[i]<0)
{
if(i==0) //若第一个月超支
{
c[1]=-fabs(b[1]);
t=-1;
}
else //不是第一个月超支
c[i]=c[i-1]-fabs(b[i]);
if(c[i]<0&&t==0)
{
t=-(i+1);
}
}
else
{
if(i==0)
{
c[i]=b[i];
n=c[i]/100; //每月存款的数目
sum=n+sum;
c[i]=b[i]%100;
}
else
if(c[i-1]+b[i]>=0)
{
n=(c[i-1]+b[i])/100;
c[i]=(b[i]+c[i-1])%100;
sum+=n;
}
else if(c[i-1]+b[i]<0&&t==0)
{
t=-(i+1);
}
}
}
M=sum*1.2*100+c[11];
if(t==0)
printf("%d",M);
else
printf("%d",t);
return 0;
}
当我按要求输入
290
230
280
200
300
170
330
50
90
80
200
60
的时候,输出结果不是1580而是1579.求各位大牛解答小弟心中的疑惑
------解决思路----------------------
兄弟,你的代码没有问题,你可以在代码最后加入暂停,你在输入最后一个数后要回车,然后就可以看到结果是1580
------解决思路----------------------
修改一下不然好亂 我用VC6.0 ok
#include<stdio.h>
#include<math.h>
int main()
{
int a[12],b[12],c[12],i,t,n,sum,M; //c[i]为月末剩余钱数
sum=0;//存起来的钱数总额
t=0;//超支的月份
for(i=0;i<12;i++)
{
scanf("%d",&a[i]); //输入每月的预算
b[i]=300-a[i]; //计算每月零花钱扣除预算的剩余
if(b[i]<0)
{
if(i==0) //若第一个月超支
{
c[1]=-fabs(b[1]);
t=-1;
}
else //不是第一个月超支
c[i]=c[i-1]-fabs(b[i]);
if(c[i]<0&&t==0)
{
t=-(i+1);
}
}
else
{
if(i==0)
{
c[i]=b[i];
n=c[i]/100; //每月存款的数目
sum=n+sum;
c[i]=b[i]%100;
}
else
if(c[i-1]+b[i]>=0)
{
n=(c[i-1]+b[i])/100;
c[i]=(b[i]+c[i-1])%100;
sum+=n;
}
else if(c[i-1]+b[i]<0&&t==0)
{
t=-(i+1);
}
}
}
M=sum*1.2*100+c[11];
if(t==0)
printf("%d",M);
else
printf("%d",t);
return 0;
}
当我按要求输入
290
230
280
200
300
170
330
50
90
80
200
60
的时候,输出结果不是1580而是1579.求各位大牛解答小弟心中的疑惑
------解决思路----------------------
兄弟,你的代码没有问题,你可以在代码最后加入暂停,你在输入最后一个数后要回车,然后就可以看到结果是1580
------解决思路----------------------
修改一下不然好亂 我用VC6.0 ok
#include<stdio.h>
#include<math.h>
int main()
{
int a[12],b[12],c[12],i,t,n,sum,M; //c[i]為月末剩余錢數
sum=0;//存起來的錢數總額
t=0;//超支的月份
//每月的零用錢
int allowance = 0;
printf("請輸入每個月的零用錢\n");
scanf("%d", &allowance);
for(i=0;i<12;i++)
{
printf("請輸入每月的預算\n");
scanf("%d",&a[i]); //輸入每月的預算
b[i]=allowance-a[i]; //計算每月零花錢扣除預算的剩余
if(b[i]<0)
{
if(i==0) //若第一個月超支
{
c[1]=-fabs(b[1]);
t=-1;
}
else //不是第一個月超支
c[i]=c[i-1]-fabs(b[i]);
if(c[i]<0&&t==0)