说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

C的一道问题

编辑:说三道四文库 发布时间:2018-06-24 04:12
HTML文档下载 WORD文档下载 PDF文档下载
若口袋里放12个球,其中3个红,3个白,6个黑,从中取8个球,统计有多少种取法,并输出具体取法。
枚举类型
你是求解还是讨论?

居然只有10点???
10是讨论?
>10是求解?
三重循环就行了
to yf9999 () 
给你一个大致的解法:

void main(void)
{
int result[8] = {0, 0, 0, 0, 0, 0, 0, 0};
int cnt = 0;
int* p = result; 
for ( int i = 0; i < 3; ++i )
    for ( int j = 0; j < 3; ++j )
       { 
        for ( int k = 0; k <= i; ++k )
           *p++ = 1;
        for ( k = 0; k <= j; ++k )
           *p++ = 2;
        k = i + j + 2;
        for ( int m = 7; m >= k; --m )
           *p++ = 3;
        cout << cnt++ << ": ";
        for ( m = 0; m < 8; ++m)
           cout << result[m];
       }
cout << endl << "total: " << cnt << endl;
}
调试后的:
#include <iostream>
#include <cstdlib>
using namespace std;

int main(void)
{
int result[8] = {0, 0, 0, 0, 0, 0, 0, 0};
int cnt = 0;
int* p = result; 
for ( int i = 0; i < 3; ++i )
{
    for ( int j = 0; j < 3; ++j )
       { 
        for ( int k = 0; k <= i; ++k )
           *p++ = 1;
        for ( int k = 0; k <= j; ++k )
           *p++ = 2;
        int k = i + j + 2;
        for ( int m = 7; m >= k; --m )
           *p++ = 3;
        cout << cnt++ << ": ";
        for ( int m = 0; m < 7; ++m)
           cout << result[m] << " ";
        cout << endl; 
        p = result;          
       }
    }               
       
cout << endl << "total: " << cnt << endl;

getchar();
return 0;
}
为什么都用C++写啊
你想用basic吗?
用c啊
如下:
#include "stdio.h"
main()
{  int i,j,k,sum=0,m=1;
   printf("\n    red white black\n");
   for(i=0;i<=3;i++)
    for(j=0;j<=3;j++)
     for(k=2;k<=6;k++)
     {  if((i+j+k)==8)
 { sum++;
   printf("\n%2d:    %d   %d   %d",m++,i,j,k);
 }

     }
   printf("\nsum=%d",sum);
}
#include <stdio.h>
main()
{
int RedBall,BlackBall,WhiteBall;
int Times=0;
printf("RedBall   WhiteBall   BlackBall\n");
printf("-------------------------------\n");
for(RedBall=0;RedBall<=3;RedBall++)
{
for(WhiteBall=0;WhiteBall<=3;WhiteBall++)
{
for(BlackBall=2;BlackBall<=6;BlackBall++)
{
if(RedBall+WhiteBall+BlackBall==8)
{
Times++;
printf("%d\t%d\t%d\n",RedBall,WhiteBall,BlackBall);
}
}
}
}
printf("Have %d Method!\n",Times);
getch();
}
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘