满意答案
xiaoman9983
2013.11.02
采纳率:54% 等级:11
已帮助:8768人
首先num[0]=0你没有排除;其次后边你直接排序是排不出结果的,因为里面有很多重复值。我给你重写了程序。
#include
int num[9999];
void main()
{
int a,b,c,d,ia,ib,ic,id,i=0,j,t,k,s=0;
printf("请输入邮票面值: ");
scanf ("%d%d%d%d",&a,&b,&c,&d);
for (ia=0;ia<=5;ia++) //所有结果(包含重复值)
{
for (ib=0;ib<=5;ib++)
{
for (ic=0;ic<=5;ic++)
{
for (id=0;id<=5;id++)
{
if (ia+ib+ic+id<=5&&ia+ib+ic+id>=1)
{
num[i]=a*ia+b*ib+c*ic+d*id;
i++;}
}
}
}
}
int count=i;
for(i=0;i
j=i+1;
while(j
if(num[j]==num[i])
{
for(t=j;t
count--; }
else
}
}
while(s
{for(j=0;jnum[j+1]){ k=num[j]; num[j]=num[j+1]; num[j+1]=k; }
}
s++;
}
printf("所构成的邮资是: ");
for(i=0;i
printf("%d,",num[i]);
printf("\n");
}
13分享举报