试图将这些数组写入缓冲区和表数组中,我缺少什么?

时间:2015-11-23 06:08:12

标签: c arrays

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main()
{
char * article[] = {
    "the",
    "a",
    "one",
    "some",
    "any"
};
char * noun[] = {
    "boy",
    "girl",
    "dog",
    "town",
    "car"
};
char * verb[] = {
    "drove",
    "jumped",
    "ran",
    "walked",
    "skipped"
};
char * preposition[] = {
    "to",
    "from",
    "over",
    "under",
    "on"
};
char sent[80] = "";
strcat(sent, article[rand() % 5]);
strcat(sent, verb[rand() % 5]);
strcat(sent, preposition[rand() % 5]);
strcat(sent, noun[rand() % 5]);

printf("%c", sent);
}

所以我已经写出了单个数组来制作随机句子。现在我试图想出如何将这些设置为一个表,每个数组迭代20次以制作一个段落。

1 个答案:

答案 0 :(得分:1)

printf("%c", sent);

仅打印一个字符,将其更改为:

printf("%s", sent);

这会打印发送中的所有字符,直到空终止符\0

顺便说一下:如果您希望rand()次调用每次都返回不同的内容,则需要先调用srand(),然后初始化rand()的基础来计算其值。通常,这是以系统时间作为参数或类似的方式完成的,以便在每次执行程序时获得不同的rand()值集。

使用srand()确保每次运行程序时都获得一组不同的rand()值的示例将使用来自{的c库函数time()来实现它{1}}图书馆。

time.h

注意 srand((unsigned) time(&t)); 使用unsigned int作为输入,为计算srand()

的(看似随机的)数字的算法播种