代码如下:

#include<stdio.h>
#define N 100

struct E{
int x,y,z;//存储成立的个数
}E[N];

int main(){
	FILE *fp;
	fp=fopen("2.out","w");
    int count=0;
	int x,y,z;
	scanf("%d%d%d",&x,&y,&z);//红黄黑
	for(int i=0;i<=x;i++){
		for(int j=0;j<=y;j++){
			for(int k=0;k<=z;k++){
				if((i+j+k)==8){
		        	count++;
                   E[count].x=i;E[count].y=j;E[count].z=k;
				}
			}
		}
	}
	fprintf(fp,"共有%d种取法\n",count);
	for( i=1;i<=count;i++){
	  fprintf(fp,"%d.  %d种红球  %d种黄球  %d种黑球\n",i,E[i].x,E[i].y,E[i].z);
	}
return 0;
}