Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
楼主: angelineang
打印 上一主题 下一主题

随机选题cprogram帮忙

[复制链接]

16

主题

0

好友

1188

积分

黄金长老

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

11#
发表于 2012-3-7 08:48 AM |只看该作者
回复 10# angelineang

case 1:quizquestion2 = false;break;
case 2:quizquestion2 = false;break;
case 3:quizquestion2 = false;break;
case 4:quizquestion2 = false;break;
case 5:quizquestion2 = false;break;
case 6:quizquestion2 = false;break;
case 7:quizquestion2 = false;break;
case 8:quizquestion2 = false;break;
case 9:quizquestion2 = false;break;
case 11:quizquestion2 = false;break;
case 12:quizquestion2 = false;break;
case 13:quizquestion2 = false;break;
case 14:quizquestion2 = false;break;
case 15:quizquestion2 = false;break;
case 16:quizquestion2 = false;break;
case 17:quizquestion2 = false;break;
case 18:quizquestion2 = false;break;
case 19:quizquestion2 = false;break;
case 20:quizquestion2 = false;break;


这个case 1 到case 20是你20个quiz的问题?
如果是的话,不要重复,你只需要两个function, 一个是generate random number,一个是quizquestion。
generate random number了就pass random number去 quizquestion, 然后looping 4次.
你的问题是直接出来四题,然后才给user回答,还是一个问题,一个答案?


回复

使用道具 举报

35

主题

0

好友

145

积分

高级会员

Rank: 3Rank: 3Rank: 3

12#
发表于 2012-3-7 09:28 AM |只看该作者
你用ARRAY来做更快,CODE更少


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

13#
发表于 2012-3-7 02:04 PM |只看该作者
这个是学校的红题。

解决方法很多, 最简单的是用 loop 20 次。
generate random,print 问题, 记录分数, loop 完 print result。
settle, 然后还能洗澡打下电动看看漫画才睡觉。

不超过 10 行能解决。


回复

使用道具 举报

18

主题

0

好友

320

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

14#
发表于 2012-3-7 07:02 PM |只看该作者
回复 13# 宅男-兜着走


    可是我不懂要怎样link去我的问题
for (int i=0;i<=10;i++);
{
question= rand () %20 + 1;
printf("\n%d",i+1);
我又怕会重复出来一样的题目
我是要一题出来,回答一题,计分,然后下一题在回答


回复

使用道具 举报

18

主题

0

好友

320

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

15#
发表于 2012-3-7 07:03 PM |只看该作者
回复 12# mywebdevteam


    我就是不懂怎样做嘛!TT


回复

使用道具 举报

18

主题

0

好友

320

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

16#
发表于 2012-3-7 07:04 PM |只看该作者
回复 11# leon_lcl


    我是要出来一次回答一题,我不懂要怎样pass,我很blur


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

17#
发表于 2012-3-7 08:09 PM |只看该作者
本帖最后由 Super-Tomato 于 2012-3-7 08:30 PM 编辑
回复  Super-Tomato


    #include
#include
#include
#include
#include
#include
#include
...
angelineang 发表于 2012-3-7 03:14 AM


你這樣的寫法,如果是 100 題的話,不就浪費時間了嗎?

這裡給你寫個簡單的例子參考,要怎麽優化就看你自己有沒有用心去研究以下這段了

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define SIZE 5

  5. typedef void (*Question)(void);

  6. void q1(void) { printf( "This is question 1" ); }
  7. void q2(void) { printf( "This is question 2" ); }
  8. void q3(void) { printf( "This is question 3" ); }
  9. void q4(void) { printf( "This is question 4" ); }
  10. void q5(void) { printf( "This is question 5" ); }

  11. void randomize(Question *funcs)
  12. {
  13.     Question temp;
  14.     int i, j;

  15.     srand( time(NULL) );
  16.     for( i=0; i<SIZE; i++ )
  17.     {
  18.         for( j=0; j<i; j++)
  19.         {
  20.             if( rand() % 2 )
  21.             {
  22.                 temp = funcs[j];
  23.                 funcs[j] = funcs[j+1];
  24.                 funcs[j+1] = temp;
  25.             }
  26.         }
  27.     }
  28. }

  29. int main()
  30. {
  31.     int i = 0;
  32.     char choice;
  33.     Question funcs[SIZE] = {&q1, &q2, &q3, &q4, &q5};

  34.     randomize( funcs );  //亂數且不重復排列

  35.     printf("\n\nThis is a CHEMISTRY QUIZ\n");
  36.     printf("**********************\n\n");
  37.     printf("Do you want to start now(Y/N) ");
  38.     scanf("%c", &choice);

  39.     if( tolower( choice ) == 'y' )
  40.     {
  41.         for( i=0; i<SIZE; i++ )
  42.         {
  43.             funcs[i]();  //呼叫自定函數
  44.             printf( "\n" );
  45.         }
  46.     }

  47.     memset(&funcs, NULL, SIZE);  //釋放資源

  48.     return 0;
  49. }
复制代码


回复

使用道具 举报

35

主题

0

好友

145

积分

高级会员

Rank: 3Rank: 3Rank: 3

18#
发表于 2012-3-7 08:37 PM |只看该作者
我很想帮你,但是懒惰开VS2010,用4个VARIABLE记录每一个问题的ID...


回复

使用道具 举报

35

主题

0

好友

145

积分

高级会员

Rank: 3Rank: 3Rank: 3

19#
发表于 2012-3-7 09:02 PM |只看该作者
我不懂这个有没有错,但如果是我就这样做
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>

  4. void getquestion(int random);
  5. void main (void){
  6.         array question[] = new array();
  7.         for(int i=0;i<4;i++){
  8.                 int random;
  9.                 int pass=0;
  10.                 do{
  11.                         random = rand() % 20 + 1;
  12.                         for(int ii=0;ii<4;ii++){
  13.                                 if(question[ii] == random){pass=1;}
  14.                         }
  15.                 }while(pass>=1);
  16.                 getquestion(random);
  17. }
  18. void getquestion(int random){
  19.         switch(random){
  20.         case 1:

  21.                 break;
  22.         case 2:

  23.                 break;
  24. }
复制代码


回复

使用道具 举报

18

主题

0

好友

320

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

20#
发表于 2012-3-7 10:10 PM |只看该作者
回复 18# mywebdevteam

不明白你的意思啊!TT


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-10-26 04:26 AM , Processed in 0.086372 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部