A. 用c语言编写程序:(1)随机输入M(33≥M≥6)个自然数,从中选出任意6个数的所有组合,并列出所有的组合
算法题,好复杂的
B. c语言程序中怎样用rand函数编写一个从1到33中任选6个不同的数的程序
先建一个数组ay= {1,……33}, 指针*p = ay
首先,了解rand()/33 即是从0-32中任选一个数
则第一个数a = *(p+rand()/33)
然后,从剩下32数中任选一个数b,过程如下:
for(int i = a; i<33;i++){
p+a = p+a+1;
}
令b = *(p+rand()/32)
如此循环到6,自己写吧
C. 请C语言高手编程!“双色球”红号组合编程 1,从1到33里任意取六个数进行组合。
#include <stdlib.h>
#include <stdio.h>
##include <stdlib.h>
#include <stdio.h>
#include <time.h> /*用到了time函数,所以要有这个头文件*/
#define MAX 6
int main( void)
{
int number[MAX] = {0};
int i,j;
srand((unsigned) time(NULL)); /*播种子*/
for(i = 0; i < MAX; i++)
{
number[i] = rand() % 33; /*产生33以内的随机整数*/
while(number[i]==0)
number[i] = rand() % 33;
//printf("%d ", number[i]);
}
while(1)
{
for(i=0;i<6;i++)
for(j=i+1;j<6;j++)
{ if(number[i]==number[j])
{
number[j]=rand() % 33;
i=-1;
}
}
if(i==6)
break;
}
for(i = 0; i < MAX; i++)
printf("%d ", number[i]);
printf("\n");
return 0;
}
程序为1-33的不重复随机数
D. 在C语言中,求33个数中最大的6个。如何写
#define N 33
void main()
{ int x[N]={7,8,5,6,3,4,1,2.....};这里有33个数
int i,j,tmp;
for(i=1; i<=N-1; i++)
for(j=0; j<=N-i-1; j++)
if(x[j] > x[j+1])
{ tmp=x[j]; x[j]=x[j+1]; x[j+1]=tmp; }//上面是对数组进行从大到小的排序,
for(i=0; i<5; i++) printf("%d,",x[i]); 这里输出前6个就行了
}
E. 设计一个福彩双色球摇奖机。根据福彩双色球摇奖规则:系统能从01~33中随机产生6个不同的数(红球)
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
加眷恋这个世
F. 在C语言中,求33个数中最大的六个,如何写
如果就是int a=13 b=56这么写很累的
不如写两个数组 一个是char c[33]这个存储 abc这些
另一个int m[33] 这些来记录数字
G. 怎么用C语言编写任意6个小于33的整数中随机取3个数的个位不能同时相等
你这题目出的有问题,到时随机取是什么意思,是不是如下所说
3 3 3 3 4 5 如果随机取得了 3 4 5就满足
如果随机取得了3 3 4 就不满足呢,
还是任意取3 个数都不能相等。
对于第一中,用index[i]=(int)(random()*6);这样就可以随机取3个数,它的范围是0到5 ,那么你可以用a[index[i]]来确定其中的值了。你自己看看是否可以重复。
对于第二种,直接判断个位就行了,我估计你是说第一种。
H. 求一段c语言代码,从1到33里随机取六个数加起来的和
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main( void )
{
int i;
int a[6];
int s=0;
srand((unsigned)time(NULL));
for(i = 0;i < 6;i++ )
{
a[i] = rand() % 33 + 1;
s+=a[i];
}
printf("The sum of %d %d %d %d %d %d is:%d\n",a[0],a[1],a[2],a[3],a[4],a[5],s);
}
至于要不重复的,可以用两种方法:
1、生成随机数时,检查之前产生的数,看有没有重复,有重复则继续生成
2、声明一个布尔型的tag[34]数组,分别用来表示1-33中哪个数产生过了。
I. c语言编程:输入21到183之间(含21.183)任意一个整数,输出1到33之间的六个数(不能相同,升序输出)
//num.cpp:定义控制台应用程序的入口点。
//
#include<stdio.h>
#include<stdlib.h>
voidfactor_num(void)
{
intinNum=0,outNum[6]={0};
intcount=0,sum=0;
intlow=0,up=0;
intflag=0;
inti=0,j=0,k=0,l=0,m=0,n=0;
low=1;up=33;
printf("Pleaseinputanumber(21-183):");
scanf("%d",&inNum);
getchar();
for(i=low;i<=up;++i)
{
sum=0;
outNum[0]=i;
sum+=outNum[0];
if(sum>=inNum)
{
break;
}
for(j=i+1;j<=up;++j)
{
outNum[1]=j;
sum+=outNum[1];
if(sum>=inNum)
{
break;
}
for(k=j+1;k<=up;++k)
{
outNum[2]=k;
sum+=outNum[2];
if(sum>=inNum)
{
break;
}
for(l=k+1;l<=up;++l)
{
outNum[3]=l;
sum+=outNum[3];
if(sum>=inNum)
{
break;
}
for(m=l+1;m<=up;++m)
{
outNum[4]=m;
sum+=outNum[4];
if(sum>=inNum)
{
break;
}
for(n=m+1;n<=up;++n)
{
outNum[5]=n;
sum+=outNum[0];
if(sum==inNum)
{
printf("%d %d %d %d %d %d ",outNum[0],outNum[1],outNum[2],outNum[3],outNum[4],outNum[5]);
++count;
break;
}
}
}
}
}
}
}
printf(" 总共有%d种分解方法。 ",count);
}
voidmain(void)
{
charselect='y';
while(select='y')
{
factor_num();
printf(" 是否继续?(y/n)");
scanf("%c",&select);
getchar();
}
system("pause");
}
J. 1到33之间用六位不重复的数相加求和公式 用C语言解答
#include <stdio.h>
int main()
{int a[6],i,j=0;
printf("请输入1到33之间用六位不重复的数");
for(i=0;i<6;i++)
{scanf("%d",&a[i]);}
for(i=0;i<6;i++)
{j=j+a[i];}
printf("和=%d",j);return 0;}
不知道是不是你想要的