各位c语言高手 帮帮忙 有道题小弟我不会,谢谢!给发到我的QQ邮箱790085117@qq.com

有这么一道题“从1到50中选10个数且各不相等,再从1到20选1个数(这一个数可以和前面那10个数相等)这11个数相加之和大与90且小于150的则输出这11个数和它们的和”
从1到50中任选10个数且各不相等,再从1到20任选1个数(这一个数可以和前面那10个数相等)这11个数相加之和大与90且小于150的则输出这11个数和它们的和”
各位高手,你们的答案结果怎么已有一组啊,之和在90之150的所有组合,能把所有组合都输出的程序谢谢

#include "stdio.h"
#include <stdlib.h>
#include <time.h>

void main()
{
int a[11];
int i,sum=0,j,temp;
srand(time(NULL));
for(i=0;i<10;i++)
{
while(1){
a[i]=rand()%50;
temp=0;
for( j=0;j<i;j++)
{
if(a[i]==a[j])
temp=1;
}

if(temp!=1) break;

}
printf("%d\n",a[i]);
}
a[i]=rand()%20;
printf("%d\n",a[i]);
for(i=0;i<11;i++)
sum=sum+a[i];
if(sum>90&&sum<150)
printf("sum=%d\n",sum);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-08
希望lx帮你了,我不会本回答被网友采纳
第2个回答  2010-12-09
这个算法效率很低(运行时,要耐心等待,估计一分钟多才会出结果),不过可以实现你的要求
#include "stdio.h"
#include <stdlib.h>
#include <time.h>
int main()
{
int a[11];
int i,sum=0,j,temp;
while(1)
{
srand(time(NULL));
for(i=0;i<10;i++)
{
while(1)
{
a[i]=rand()%50;
temp=0;
for( j=0;j<i;j++)
{
if(a[i]==a[j])
temp=1;
}
if(temp!=1) break;
}
}
a[i]=rand()%20;
for(i=0;i<11;i++)
sum=sum+a[i];
if(sum>90&&sum<150)
{
for(i=0;i<11;i++)
printf("%d\n",a[i]);
printf("sum=%d\n",sum);
getchar();
getchar();
return 0;
}
}
getchar();
getchar();
return 0;
}

各位c语言高手 帮帮忙 有道题小弟我不会,谢谢!给发到我的QQ邮箱790085117...
include <stdlib.h> include void main(){ int a[11];int i,sum=0,j,temp;srand(time(NULL));for(i=0;i<10;i++){ while(1){ a[i]=rand()%50;temp=0;for( j=0;j<i;j++){ if(a[i]==a[j])temp=1;} if(temp!=1) break;} printf("%d\\n",a[i]);} a[i]=ra...

相似回答
大家正在搜