找随机数

来源:百度知道 编辑:UC知道 时间:2024/05/31 05:07:39
随机产生10个两位正整数,从这10个数中选择若干个数,使它们的和最大,并且这些数的个位数之和不大于10。
输入输出样例:
输出:17 82 57 62 43 96 48 44 74 23
maxtotal=240
number=82 62 96

刚刚写好 运行无误
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int a[10],b[10];
int maxtotal=0;
//srand((unsigned)time(NULL));
//for(int i=0;i<10;i++)
//{
// a[i]=rand()%99+10; //10到100之间的随机数
//}
for(int i=0;i<10;i++) //自己输入 就用这个
{
scanf("%d",&a[i]);
}
int temp;
for(int i=0;i<10;i++) //这边是排序
{
for(int j=9;j>=0;j--)
{
if(a[j-1]>a[j])
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}

}
for(int i=0;i<10;i++)
{
b[i]=a[i]%10; //把个位数放到b数组种
}
int sum=b[9];
int t=0;
for(int i=8;i>=0;i--)
{
sum=sum+b[i];
if(sum>10)
break;
t++;
}
for(int i=9;i>=9-t;i--)
{
maxtotal=maxtotal+a[i];
printf("%d ",a[i]);
}
printf("