如何在不使用指针的情况下从数组中获取输出?

How to get an output out of arrays without using pointers?

首先,我是这个站点的新手,我是 C 编程的初学者,希望您能帮助我解决这个小问题。

这是我的代码。

#include<stdio.h>
#include<time.h>
main()
{
 char user[10],temp[10];
 int t;
 printf("Welcome to the game of guessing\nThere are 2 choices namely a,and b\n");
 getch();
 printf("You just have to guess and see if u are lucky\n");
 getch();
 printf("Type a letter from a and b choices\n");
 scanf("%s",&user[0]);
 srand(time(NULL));
 t=rand();
 if(t%2==0)
 {
      char temp[0]="a";
 }else
 {
      char temp[0]="b";
 }
 if(strncmp(temp,user,1)==0)
 {
      printf("You have guessed right. The answer is %s",user[0]);
 }else
 {
      printf("You have guessed wrong. The answer is %s, try again",temp[0]);
 }
 getch();

}

好吧,这段代码创建了一个简单的猜谜游戏,你必须输入一个输入,如果你的输入与计算机的输入相符,那么你就赢了,否则你就输了。

我遇到的问题出在最后的 printf 语句中。看最后的printf

printf("You have guessed wrong. The answer is %s, try again",temp[0]);

这里的输出有点像这样。

你猜错了。答案是null,再试一次

那么这个 null 是什么,我如何让它获得临时值。

而且我总是得到错误的输出。有什么办法可以解决这个问题吗?由于这是基于等概率的,我想我应该能够在a和b之间得到平等的选择。

谢谢。

删除第一个if和else中的"char",将"a"改为'a',将"b"改为'b'。

在 printf 中应该是

printf("You have guessed right. The answer is %c",user[0]);

而不是

printf("You have guessed right. The answer is %s",user[0]);

第二个printf也一样