首页 > 解决方案 > 是否可以随机打印结构?

问题描述

我的项目很简单。这只是一个有用户输入的问答游戏。至于问题和答案,我使用了一个文件将它们保存为数据库。我还定义了一个结构:

typedef struct QUESTION
{
    char question[MAXCARACTERES];
    char answer1[MAXCARACTERES];
    char answer2[MAXCARACTERES];
    char answer3[MAXCARACTERES];
    char answer4[MAXCARACTERES];
} QUESTION;

我想知道是否有可能随机打印答案。否则,正确的人总是留在同一个地方。

提前致谢!

标签: c

解决方案


我将 William Pursell 的评论变成了答案。您无法运行代码,因为缺少答案和其他一些东西,但它应该可以工作。

typedef struct QUESTION
{
    char question[MAXCARACTERES];
    char answer[4][MAXCARACTERES];
} QUESTAO;

void randPerm( int *surp );

int main() {

    int surprise[4] = {0, 1, 2, 3};
    
    randPerm( surprise );
    
    for(int i = 0; i < 4; i++) {
        
        printf("%s\n", QUESTAO.answer[surprise[i]])
    }

    return 0;
}

void randPerm( int *surp )
{
    for(int i = 4; i > 1; i--) {
        
        int luck = rand() % i;
        
        int hold = surp[luck];
        surp[luck] = surp[i-1];
        surp[i-1] = hold;
    }
}

推荐阅读