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;}
不知道是不是你想要的