- 分享
- 0
- 人气
- 0
- 主题
- 7
- 帖子
- 4707
- UID
- 82675
- 积分
- 5108
- 阅读权限
- 22
- 注册时间
- 2007-6-18
- 最后登录
- 2021-7-27
- 在线时间
- 5767 小时
|
本帖最后由 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 題的話,不就浪費時間了嗎?
這裡給你寫個簡單的例子參考,要怎麽優化就看你自己有沒有用心去研究以下這段了
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define SIZE 5
- typedef void (*Question)(void);
- void q1(void) { printf( "This is question 1" ); }
- void q2(void) { printf( "This is question 2" ); }
- void q3(void) { printf( "This is question 3" ); }
- void q4(void) { printf( "This is question 4" ); }
- void q5(void) { printf( "This is question 5" ); }
- void randomize(Question *funcs)
- {
- Question temp;
- int i, j;
- srand( time(NULL) );
- for( i=0; i<SIZE; i++ )
- {
- for( j=0; j<i; j++)
- {
- if( rand() % 2 )
- {
- temp = funcs[j];
- funcs[j] = funcs[j+1];
- funcs[j+1] = temp;
- }
- }
- }
- }
- int main()
- {
- int i = 0;
- char choice;
- Question funcs[SIZE] = {&q1, &q2, &q3, &q4, &q5};
- randomize( funcs ); //亂數且不重復排列
- printf("\n\nThis is a CHEMISTRY QUIZ\n");
- printf("**********************\n\n");
- printf("Do you want to start now(Y/N) ");
- scanf("%c", &choice);
- if( tolower( choice ) == 'y' )
- {
- for( i=0; i<SIZE; i++ )
- {
- funcs[i](); //呼叫自定函數
- printf( "\n" );
- }
- }
- memset(&funcs, NULL, SIZE); //釋放資源
- return 0;
- }
复制代码 |
|