C语言程序题目,请大神帮忙看看哪错了。谢谢!

题目描述财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?这里假设老师的工资都是正... 题目描述
财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。
输入
输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n<100),表示老师的人数,然后是n个老师的工资,工资额不超过100000。n=0表示输入的结束,不做处理。

输出
对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。
Sample Input
3
1 2 3
0
Sample Output
4

下面是我的程序:
#include<stdio.h>
#include<math.h>
int main(){
int n,i,j;
int b[a];
int sum;
int a1,a2,a3,a4,a5,a6;
int c1,c2,c3,c4,c5,c6;
for(i=0;i<=100;i++){
while(scanf("%d\n",&n)&&(n!=0))
for(j=1;j<=n;j++){
scanf("%d ",&b[j]);
a1 = b[j] % 100;
c1 = b[j] - 100*a1;
a2 = c1 % 50;
c2 = c1 - 50*a2;
a3 = c2 % 10;
c3 = c2 - 10*a3;
a4 = c3 % 5;
c4 = c3 - 5*a4;
a5 = c4 % 2;
c5 = c4 - 2*a5;
a6 = c5 % 1;
}
sum =a1+a2+a3+a4+a5+a6 ;
printf("%d\n",sum);
}
return 0;
}
展开
 我来答
tangzhzh2011
2014-06-05
知道答主
回答量:11
采纳率:0%
帮助的人:5.5万
展开全部
#include<stdio.h>
#include<math.h>
int main(){
int n,i,j;
int b[a];
int sum;
int a1,a2,a3,a4,a5,a6;
int c1,c2,c3,c4,c5,c6;
for(i=0;i<=100;i++){
while(scanf("%d\n",&n)&&(n!=0))
for(j=1;j<=n;j++){
scanf("%d ",&b[j]);
a1 = b[j] /100;
a2 =b[j] %100/50;
a3 = b[j] %100%50/10;
a4 =b[j] %100%50%10/5;
a5= b[j] %100%50%10%5/2;
a6=b[j] %2;
}
sum =a1+a2+a3+a4+a5+a6 ;
printf("%d\n",sum);
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
top8813
2014-06-07 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:101万
展开全部
#include<stdio.h>
#include<math.h>
int main(){
int n,i,j;
int b[a];
int sum = 0;
int a1,a2,a3,a4,a5,a6;
int c1,c2,c3,c4,c5,c6;
for(i=0;i<=100;i++){ //这里最好换成while循环
while(scanf("%d\n",&n)&&(n!=0))
{
for(j=1;j<=n;j++){
scanf("%d ",&b[j]);
a1 = b[j] % 100;
c1 = b[j] - 100*a1;
a2 = c1 % 50;
c2 = c1 - 50*a2;
a3 = c2 % 10;
c3 = c2 - 10*a3;
a4 = c3 % 5;
c4 = c3 - 5*a4;
a5 = c4 % 2;
c5 = c4 - 2*a5;
a6 = c5 % 1;
}
sum +=a1+a2+a3+a4+a5+a6 ; //求的是总张数

}
printf("%d\n",sum);
return 0;
}

看出来了这一个错误,别的地方不敢保证,你再试试?
追问
int b[a];
关于这个数组a的容积是不是未定义呢?还是直接采用指针?
如果定义a的容积,那势必导致a必须赋初值啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-06-05
展开全部
你定义的数组int b[a];是什么情况?
追问
就是数组啊,"b[ ]",我去掉了可以运行但是达不到上面题目的准则,能不能帮我改改?
追答
#include<stdio.h>
#include<math.h>
int main(){
    int i,n,j,k;
    int b;
    int *p ;
    int sum = 0;
    int a1,a2,a5,a10,a50,a100;
    a1 = a2 = a5 = a10 = a50 = a100 = 0;
    int c2,c5,c10,c50,c100;
    printf("输入实例组数:");
    scanf("%d",&k);
    p = new int[k];
    for(i = 0;i<k;i++)
    {
     if(printf("输入老师人数:")&&scanf("%d",&n)&&(n!=0))
        for(j=1;j<=n;j++)
     {
            scanf("%d",&b);
            a100 = b / 100;
            c100 = b - 100*a100;
            a50 = c100 / 50;
            c50 = c100 - 50*a50;
            a10 = c50 / 10;
            c10 = c50 - 10*a10;
            a5 = c10 / 5;
            c5 = c10 - 5*a5;
            a2 = c5 / 2;
            a1 = c5 - 2*a2;
            sum += a1+a2+a5+a10+a50+a100 ;
        }
        p[i] = sum;
        sum = 0;
    }
    for(i = 0;i < k;i++)
    {
        printf("%d\t",p[i]);
    }
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leiqianlq
2014-06-05 · TA获得超过115个赞
知道小有建树答主
回答量:624
采纳率:0%
帮助的人:276万
展开全部
a1 = b[j] / 100;

a2 = c1 /50;

......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式