codeforces 160A-C语言解题报告
Posted DQ_CODING
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforces 160A-C语言解题报告相关的知识,希望对你有一定的参考价值。
题目解析
1.输入硬币的个数,分配硬币,使拿最小的硬币数比剩下的硬币金额大
举例:
输入:
2
3 3
输出
2
2.注意点:
1)接收整型数组时要使用&,因为只有字符数组是使用指针传递首地址的
scanf("%d",&a[i]);
2)使用冒泡排序,将数组从大到小排序
for(int j=0;j<n-1;j++)
for(int k=0;k<n-1-j;k++)
3)使用count_all去计算所有的硬币金额,使用count_now去计算现在拿的硬币金额,再将它与剩下的硬币金额比较
代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int n=0,count_all=0,count_now=0,count=0;
scanf("%d",&n);
int a[100]={0};
for(int i=0;i<n;i++)
{
//字符串才可以 char a[i],字符数组才使用了指针
scanf("%d",&a[i]);//&
count_all+=a[i];
}
for(int j=0;j<n-1;j++)
{
for(int k=0;k<n-1-j;k++)
{
if(a[k]<a[k+1])
{
int temp=0;
temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;
}
}
}
for(int m=0;m<n;m++)
{
count_now+=a[m];
count++;
if(count_now>(count_all-count_now))
{
break;
}
}
printf("%d",count);
getchar();
system("pause");
return 0;
}
以上是关于codeforces 160A-C语言解题报告的主要内容,如果未能解决你的问题,请参考以下文章