为什么我写的程序acm中显示是wrong answer?? 急需高人指点

第一题:网址是:http://acm.hdu.edu.cn/showproblem.php?pid=2020#include<stdio.h>#include<math.... 第一题:网址是:http://acm.hdu.edu.cn/showproblem.php?pid=2020
#include<stdio.h>
#include <math.h>
int main()
{
int n,i,j;
while(scanf("%d",&n)!=EOF&&n!=0)
{
int a[100],d=0,b=0,c=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]<0)
{
d=-a[i];
}
else d=a[j];
if(a[j]<0)
{
b=-a[j];
}
else b=a[j];
if(d<b)
{
c=a[i];
a[i]=a[j];
a[j]=c;
}
}
}
for(i=0;i<n;i++)
{
printf("%d",a[i]);
if(i<(n-1))
{
printf(" ");
}
}
printf("\n");
}
}

第二题:网址是:http://acm.hdu.edu.cn/showproblem.php?pid=2021
#include<stdio.h>
int main()
{
int n,i;
while(scanf("%d",&n),n)
{
int a[100],b=0,c=0,d=0,e=0,f=0,g=0,j=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
c=a[i]/100;
d=(a[i]%100)/50;
e=(a[i]%50)/10;
f=(a[i]%10)/2;
g=a[i]%2;
b=c+d+e+f+g;
j+=b;
}
printf("%d\n",j);
}
return 0;
}
展开
 我来答
qmaoting
推荐于2016-05-01 · TA获得超过217个赞
知道小有建树答主
回答量:112
采纳率:100%
帮助的人:100万
展开全部
你用的是c语言,最好不要在半路定义变量,那是c++的写法

第一题你的测试数据都没过怎么能交呢?
/*
if(a[i]<0)
{
d=-a[i];
}
else d=a[j]; //你的这里错了,应该是a[i]
*/

#include<stdio.h>
#include <math.h>
int main()
{
int n,i,j;
int a[100],d,b,c;
while(scanf("%d",&n)!=EOF&&n!=0){
for(i=0;i<n;i++)
scanf("%d",&a[i]);

for(i=0;i<n;i++){
for(j=i+1;j<n;j++)
{
d=abs(a[i]);
b=abs(a[j]);
if(d<b)
{
c=a[i];
a[i]=a[j];
a[j]=c;
}
}
}

printf("%d",a[0]);
for(i=1;i<n;i++)
printf(" %d",a[i]);
printf("\n");
}
return 0;
}

第二题你没更新a[i]的值:

#include<stdio.h>
int main()
{
int n,i,j;
int a[100],mon;
int money[6]={100,50,10,5,2,1};
while(scanf("%d",&n),n)
{
mon=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);

for(i=0;i<n;i++)
for(j=0;j<6;j++)
{
mon+=a[i]/money[j];
a[i]%=money[j];
}
printf("%d\n",mon);
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ch...4@sina.com
2010-08-04 · TA获得超过154个赞
知道答主
回答量:105
采纳率:0%
帮助的人:0
展开全部
第一题
else d=a[j]; 你的这里错了,应该是a[i]
还有你为什么不在输入时做下处理,把他们改成自己的绝对值,就不用在排序中那么麻烦了。

第二题 你似乎没考虑5块钱,还有你试试1 15。。。而且每次要更a[i]的值,这样才是剩下的零钱数。

下面是我的程序
第一题
#include<iostream>
using namespace std;
int main()
{
int n,i,m,j,a[101],b[101];
while (scanf("%d",&n))
{
if (n==0) break;
for (i=1;i<=n;i++)
{
scanf("%d",&a[i]);
b[i]=abs(a[i]);
}
for (i=1;i<n;i++)
{
m=i;
for (j=i+1;j<=n;j++)
if (b[j]>b[m])
m=j;
swap(a[i],a[m]);
swap(b[i],b[m]);
}
for (i=1;i<=n;i++)
{
if (i!=1) printf(" ");
printf("%d",a[i]);
}
printf("\n");
}
return 0;
}
第二题
#include<iostream>
using namespace std;
int gongzi(int n)
{
int a,b,c,d,e,f;
a=n/100;
n%=100;
b=n/50;
n%=50;
c=n/10;
n%=10;
d=n/5;
n%=5;
e=n/2;
f=n%2;
return a+b+c+d+e+f;
}
int main()
{
int n,a,s;
while (scanf("%d",&n))
{
if (n==0) break;
s=0;
while (n--)
{
scanf("%d",&a);
s+=gongzi(a);
}
printf("%d\n",s);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式