c语言-抽签结果,不知道怎么使用数组(第一次使用)

问题描述

抽签结果,不知道怎么使用数组(第一次使用)

两队比赛,甲队A.B.C.D乙队W.X.Y.Z,已知A不与X比赛,C不与X.Z比赛,D不与W比赛。。。。输出所有可能的结果。。。。求大神解答告诉我应该怎么思考,谢谢

解决方案

#include
#include
using namespace std;
char A[3]={'W','Y','Z'};
char B[4]={'W','X','Y','Z'};
char C[2]={'W','Y'};
char D[3]={'X','Y','Z'};
int flag[4];
int main()
{
int num=1;
memset(flag,0,sizeof(flag));
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
for(int k=0;k<2;k++)
{
for(int m=0;m<3;m++)
{
flag[A[i]-87]=1; //将W,X,Y,Z映射成0,1,2,3
flag[B[j]-87]=1;
flag[C[k]-87]=1;
flag[D[m]-87]=1;

                if(flag[0]==1&&flag[1]==1&&flag[2]==1&&flag[3]==1)
                {
                    cout<<"分组"<<num++<<endl;
                    cout<<"A vs "<<A[i]<<endl;
                    cout<<"B vs "<<B[j]<<endl;
                    cout<<"C vs "<<C[k]<<endl;
                    cout<<"D vs "<<D[m]<<endl;
                    cout<<endl;
                }
                memset(flag,0,sizeof(flag));
            }

        }
    }
}
return 0;

}


解决方案二:

最暴力的是排除约束后四层for循环判断可行性。或者用深度优先搜索。

解决方案三:

用多层for语句嵌套,枚举每种情况。用if语句判断,把符合情况的输出来。

解决方案四:

求大神解答~~~~~~

解决方案五:

代码片没贴好,你把头文件自己补一下把~

解决方案六:

哇~~~~谢谢谢谢!我仔细研究研究好感动

时间: 2024-11-03 21:57:39

c语言-抽签结果,不知道怎么使用数组(第一次使用)的相关文章

C语言学习教程第四章-数组(8)

在二维数组a中选出各行最大的元素组成一个一维数组b. a=3 16 87 65 4 32 11 108 10 25 12 37b=(87 108 37) 本题的编程思路是,在数组A的每一行中寻找最大的元素,找到之后把该值赋予数组B相应的元素即可.程序如下:main(){static int a[][4]={3,16,87,65,4,32,11,108,10,25,12,27};int b[3],i,j,l;for(i=0;i<=2;i++){ l=a[i][0];for(j=1;j<=3;j+

C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表本文由 arthinking 发表于315 天前 ⁄ itzhai.com原创文章 ⁄ C语言 ⁄ 评论数 3 ⁄ 被围观 1,775 views+   指针数组: 在一个数组中,如果它的元素全部都是指针

c语言中向二维字符数组中写入符号*

问题描述 c语言中向二维字符数组中写入符号* 声明一个二维字符数组char str[][]: 通过循环嵌套向里面写入符号 * 怎么实现?求前辈指教. 解决方案 for (int i = 0; i < 100; i++) { arr[i / 10][u % 10] = ' '; } for (i =0; i < 10; i++) { arr[3][i] = '*'; arr[4][i] = '*'; arr[i][3] = '*'; arr[i][4] = '*'; } 解决方案二: 只要一行

c语言-C语言typedef问题与结构体数组问题

问题描述 C语言typedef问题与结构体数组问题 typedef struct students{ long code; char *name; float score[3]; float sum;}cla[40];这样定义是什么意思呢?cla代替了struct students?正确的写法是怎么样的 解决方案 定义了一个班级类型,它代表40个学生,cla代替了students[40]以后可以定义变量cla cla1;cla1就是一个40个students组成的数组 语法上没问题,不过个人觉得

c语言-C语言在函数中调用指数组的问题

问题描述 C语言在函数中调用指数组的问题 #include <stdio.h> int i=5; void output_array ( int array[] ){ int a; for ( a=0; a<i; a++ ){ printf ( "%i%s", &array[a], "t" ); //warning: format specifies type 'int' but the argument has type 'int *'

c语言-C语言怎么用索引来指示数组中的每个元素

问题描述 C语言怎么用索引来指示数组中的每个元素 C语言怎么用索引来指示数组中的每个元素,能给个例子并解释一下 解决方案 比如 int x[] = {1,2,3}; int a = x[0]; 解决方案二: 应该可以用指针和下标两种办法,但是你说的索引是啥呢? 解决方案三: 索引就是下标,只是2个不同的叫法而已 我们先定义一个int类型数组 int a[2]; //我先进行了定义 int a[0]={1}; //然后分别对每个元素进行初始化 int a[1]={2}; //以上进行初始化的同时,

指针-【C语言】为什么指向char整数数组的char*相减得到的是long类型?

问题描述 [C语言]为什么指向char整数数组的char*相减得到的是long类型? 解决方案 事实上, char *p,*p1都是指针,一个指向数组第一个元素,一个指向第五个元素,指针的减法表示地址之间的差,而这是指向char的指针,因此得到的是两地址差/8的值,即sizeof() 解决方案二: 你测试一个问题的时候 把结果贴出来 方便解决 解决方案三: 指针运算得出的结果与指针指向的类型和系统位数有关.比如上述例子:p和p1指针指向的都是char,那么指针运算的单位是一个字节长度. 根据上述

C语言程序设计第二版 1.6数组练习1-13打印输入中单词长度的直方图的问题

问题描述 C语言程序设计第二版 1.6数组练习1-13打印输入中单词长度的直方图的问题 /* Note:Your choice is C IDE */ #include "stdio.h" #define MAXHIST 15 //柱状图长度 #define MAXWORD 11 //单词长度 #define IN 1 #define OUT 0 void main() { int c,i,nc,state; int len; int maxvalue; //wl[]的最大值 int

图片-C语言,请教关于结构体数组的问题

问题描述 C语言,请教关于结构体数组的问题 图中倒数第二行 scanf("%d",&G[i]); 结构体VNode中有两类元素int data 和ArcNode *firstarc 为什么"&G[i]"就是给结构体VNode中的data赋值? 解决方案 &G[i]和&G[i].data的地址相同,有的编译器允许这样使用. 解决方案二: C语言结构体数组赋值问题IOS开发---C语言-?结构体数组C语言中的结构体数组 解决方案三: 我想