我正在尝试创建一个程序,该程序在用户输入“roll”时打印一个随机数,如果随机数大于或等于 3,则允许用户输入“1”。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int randomnumber;
char diceinput;
int slotnumber;
char lettertable[7];
char *character;
lettertable[1] = 'l';
lettertable[2] = 'r';
lettertable[3] = 't';
lettertable[4] = 'e';
lettertable[5] = 't';
lettertable[6] = 'e';
character = &lettertable[1];
printf("Enter 'roll' to roll the dice. Enter 'exit' to quit.\n");
scanf("%s", &diceinput);
if (strcmp(&diceinput, "exit")==0) {
printf("Now quitting. Thank you, and please play again!\n");
}
if (strcmp(&diceinput, "roll")==0) {
srand((unsigned)time(NULL));
randomnumber = rand() % 6 + 1;
printf("%d\n", randomnumber);
if (randomnumber >= 3) {
printf("Enter 1 to get the corresponding letter from table.\n");
scanf("%d", &slotnumber);
if (slotnumber == 1) {
printf("%s", character);
}
}
}
}
用户输入“1”后,程序应该获取存储在字母表[1]中的字母,这是数组字母表中的一个元素。然而,当我运行程序并输入“1”时,输出的不是字母“l”,而是一个奇怪的短语:“lrtete”,带有一个倒置的问号。有人能帮帮我吗?谢谢你。
请注意,上面显示的代码只是未完成程序的相关部分。