#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次以制作一个段落。
答案 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()