2016-04-24 40 views
0

我目前正在尝试在C中创建一个小游戏,并且希望生成一个小型原型,它将打印随机单词,让用户键入单词,然后会显示他们如何键入它,然后它会显示用户应该如何键入它。C编程 - 将一个单词添加到数组中,然后打印出阵列中的内容

我想向用户展示他们输入的内容的原因是,最终他们可以是一个概述,但现在我只想让它工作。

目前,而不是显示用户把它显示的数字,我认为它与我把这些单词放在数组中,但我不知道。我怎样才能让它打印数组中的单词?下面的代码:

#include <stdio.h> 
#include <stdlib.h> 
#include <stdbool.h> 
#include <time.h> 

void main() 
{ 
    char *words[] = {"sausage","blubber","pencil","cloud","moon","water","computer","school","network","hammer","walking","violently","mediocre","literature","chair","two","window","cords","musical","zebra","xylophone","penguin","home","dog","final","ink","teacher","fun","website","banana","uncle","softly","mega","ten","awesome","attatch","blue","internet","bottle","tight","zone","tomato","prison","hydro","cleaning","telivision","send","frog","cup","book","zooming","falling","evily","gamer","lid","juice","moniter","captain","bonding","loudly","thudding","guitar","shaving","hair","soccer","water","racket","table","late","media","desktop","flipper","club","flying","smooth","monster","purple","guardian","bold","hyperlink","presentation","world","national","comment","element","magic","lion","sand","crust","toast","jam","hunter","forest","foraging","silently","tawesomated","joshing","pong","RANDOM","WORD"}; 
    char *questions[] = {"sausage1","blubber1","pencil1","cloud1","moon1","water1","computer1","school1","network1","hammer1","walking1","violently1","mediocre1","literature1","chair1","two1","window1","cords1","musical1","zebra1","xylophone1","penguin1","home1","dog1","final1","ink1","teacher1","fun1","website1","banana1","uncle1","softly1","mega1","ten1","awesome1","attatch1","blue1","internet1","bottle1","tight1","zone1","tomato1","prison1","hydro1","cleaning1","telivision1","send1","frog1","cup1","book1","zooming1","falling1","evily1","gamer1","lid1","juice1","moniter1","captain1","bonding1","loudly1","thudding1","guitar1","shaving1","hair1","soccer1","water1","racket1","table1","late1","media1","desktop1","flipper1","club1","flying1","smooth1","monster1","purple1","guardian1","bold1","hyperlink1","presentation1","world1","national1","comment1","element1","magic1","lion1","sand1","crust1","toast1","jam1","hunter1","forest1","foraging1","silently1","tawesomated1","joshing1","pong1","RANDOM1","WORD1"}; 
    char answer[255] = ""; 

    int word; 
    int vec[20] = { 0 }; 
    int i, j; 
    int x=0; 
    srand(time(NULL)); 

    do{ 
     for (i = 0; i < 20; i++) { 
      int okay = 0; 

      while (!okay) { 
       vec[i] = rand() % 100 + 1; 
       okay = 1; 

       for (j = 0; j < i; j++) { 
        if (vec[i] == vec[j]) okay = 0; 
       } 
      } 

      word=vec[i]; 

      printf("%s\n",questions[word]); //print a word 
      scanf("%255s",answer);// wait for the user to type the word 
      printf("%s\n",answer[x]);// show what the user typed 

      printf("%s\n\n",words[word]);// show how they should of typed it 

     } 
    }while (x<20,x++); 

    return 0; 
} 
+1

如果您在启用警告的情况下编译程序,您将获得一些提示。 –

+0

在某些时候,请阅读[应该在C和C++中返回什么'main()'](http://stackoverflow.com/questions/204476/),如果您不在Windows上工作,则需要立即修复定义main()来返回int。 –

+0

'printf(“%s \ n”,answer [x]);'不符合你的想法。一个好的编译器(例如GCC,带'-Wall')会告诉你这个错误。其他编译器可能不会 - 并且由此产生的程序可能会崩溃或产生乱码。你的代码有4个级别的循环。这需要使用函数的某些功能(或者清理算法,因此需要更少的循环级别)。 –

回答

0
#include <stdio.h> 
#include <stdlib.h> 
#include <stdbool.h> 
#include <time.h> 

void main() 
{ 
char *words[] = {"sausage","blubber","pencil","cloud","moon","water","computer","school","network","hammer","walking","violently","mediocre","literature","chair","two","window","cords","musical","zebra","xylophone","penguin","home","dog","final","ink","teacher","fun","website","banana","uncle","softly","mega","ten","awesome","attatch","blue","internet","bottle","tight","zone","tomato","prison","hydro","cleaning","telivision","send","frog","cup","book","zooming","falling","evily","gamer","lid","juice","moniter","captain","bonding","loudly","thudding","guitar","shaving","hair","soccer","water","racket","table","late","media","desktop","flipper","club","flying","smooth","monster","purple","guardian","bold","hyperlink","presentation","world","national","comment","element","magic","lion","sand","crust","toast","jam","hunter","forest","foraging","silently","tawesomated","joshing","pong","RANDOM","WORD"}; 
char *questions[] = {"sausage1","blubber1","pencil1","cloud1","moon1","water1","computer1","school1","network1","hammer1","walking1","violently1","mediocre1","literature1","chair1","two1","window1","cords1","musical1","zebra1","xylophone1","penguin1","home1","dog1","final1","ink1","teacher1","fun1","website1","banana1","uncle1","softly1","mega1","ten1","awesome1","attatch1","blue1","internet1","bottle1","tight1","zone1","tomato1","prison1","hydro1","cleaning1","telivision1","send1","frog1","cup1","book1","zooming1","falling1","evily1","gamer1","lid1","juice1","moniter1","captain1","bonding1","loudly1","thudding1","guitar1","shaving1","hair1","soccer1","water1","racket1","table1","late1","media1","desktop1","flipper1","club1","flying1","smooth1","monster1","purple1","guardian1","bold1","hyperlink1","presentation1","world1","national1","comment1","element1","magic1","lion1","sand1","crust1","toast1","jam1","hunter1","forest1","foraging1","silently1","tawesomated1","joshing1","pong1","RANDOM1","WORD1"}; 
char answer[20][255]; 

int word; 
int vec[20] = { 0 }; 
int i, j; 
int x=0; 
srand(time(NULL)); 

do{ 
    for (i = 0; i < 20; i++) { 
     int okay = 0; 

     while (!okay) { 
      vec[i] = rand() % 100 + 1; 
      okay = 1; 

      for (j = 0; j < i; j++) { 
       if (vec[i] == vec[j]) okay = 0; 
      } 
     } 

     word=vec[i]; 

     printf("%s\n",questions[word]); //print a word 
     scanf("%s",answer[i]);// wait for the user to type the word 
     printf("%s\n",answer[i]);// show what the user typed 

     printf("%s\n\n",words[word]);// show how they should of typed it 

    } 
}while (x<20,x++); 

return 0; 
} 

我希望这是你想要的。

+0

我没有得到在while while循环中使用for循环并且条件少于20的目的。 –

+0

非常感谢您,我明白您对所有循环的含义,并将在稍后清理它,我只是想让它工作。谢谢。 – Tytoowns

相关问题