史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2005-08-04, 06:44 PM   #1
kcfs983
註冊會員
榮譽勳章

勳章總數
UID - 12955
在線等級: 級別:0 | 在線時長:0小時 | 升級還需:5小時
註冊日期: 2002-12-16
VIP期限: 2006-02
文章: 72
精華: 0
預設 誰可幫我看看問題在哪

#include <iostream>
#include <stdio.h>

using namespace std;

int p5a(char s[]) { //判斷函式

//在這加入你的程式碼
int l=strlen(s);
int i;
for(i=0;i<l/2;i++){
if(s[i]!=s[strlen(s)-1-i])
return 1<0;
}
return 1>0;
}
int main() { //主程式

char s1[]="12321";
char s2[]="123121";
char s3[]="1DF23cCc32fd1";
cout<<s1<<":"<<p5a(s1)<<endl;
cout<<s2<<":"<<p5a(s2)<<endl;
cout<<s3<<":"<<p5a(s3)<<endl;

system("pause");
return 0;
}

輸出結果:
12321 = 1
123121 =0
1DF23cCc32fd1 = 0

可是正常來說第3行應該要1才對~~幫幫忙~~謝嚕
kcfs983 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2005-08-04, 07:17 PM   #2 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 12955
在線等級: 級別:0 | 在線時長:0小時 | 升級還需:5小時
註冊日期: 2002-12-16
VIP期限: 2006-02
文章: 72
精華: 0
預設

還有這一題@@~有大大可幫我解嗎??

/* (一) 模擬擲骰子 II */

#include <iostream>
#include <stdlib.h>
#include <stdio.h>

using namespace std;

int p2a(int dist[6]) { // 產生擬骰子點數

int sum=0;
int i;
for(i=0; i<6; i++)
sum+=dist[i];
int chk=0;
int r=rand()%sum;
for(i=0; i<6; i++) {
chk+=dist[i];
if (r<chk)
return i+1;
}
return 0;

}

void sim(int dist[6], int cnt[6], int runs) { // 模擬骰子點數

//在這加入你的程式碼

}

void printC(int cnt[6]) { // 統計骰子點數總和

//在這加入你的程式碼

}

void printP(int cnt[6]) { // 統計骰子點數機率

//在這加入你的程式碼

}

int main() { //主程式

int d[] = {1,1,1,1,1,5};
int cnt[] = {0,0,0,0,0,0};

sim(d,cnt,20000);
printC(cnt);
printP(cnt);

system("pause");
return 0;

}
kcfs983 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2005-08-04, 08:21 PM   #3 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9669小時 | 升級還需:128小時級別:96 | 在線時長:9669小時 | 升級還需:128小時級別:96 | 在線時長:9669小時 | 升級還需:128小時級別:96 | 在線時長:9669小時 | 升級還需:128小時級別:96 | 在線時長:9669小時 | 升級還需:128小時級別:96 | 在線時長:9669小時 | 升級還需:128小時
註冊日期: 2002-12-07
文章: 13252
精華: 0
現金: 26245 金幣
資產: 3024055 金幣
預設

第一題D不等於d 所以傳回 0 (大小寫不同就是不等於)
第二題...(待) 要解什麼?
mini 目前離線  
送花文章: 2000, 收花文章: 7958 篇, 收花: 26750 次
回覆時引用此帖
舊 2005-08-04, 08:55 PM   #4 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 12955
在線等級: 級別:0 | 在線時長:0小時 | 升級還需:5小時
註冊日期: 2002-12-16
VIP期限: 2006-02
文章: 72
精華: 0
預設

引用:
作者: mini
第一題D不等於d 所以傳回 0 (大小寫不同就是不等於)
第二題...(待) 要解什麼?
撰寫一可操控各點數出現頻率的擬擲骰子函式,各點數的出現頻率將由一整數陣列傳至該函數
kcfs983 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2005-08-04, 10:58 PM   #5 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9669小時 | 升級還需:128小時級別:96 | 在線時長:9669小時 | 升級還需:128小時級別:96 | 在線時長:9669小時 | 升級還需:128小時級別:96 | 在線時長:9669小時 | 升級還需:128小時級別:96 | 在線時長:9669小時 | 升級還需:128小時級別:96 | 在線時長:9669小時 | 升級還需:128小時
註冊日期: 2002-12-07
文章: 13252
精華: 0
現金: 26245 金幣
資產: 3024055 金幣
預設

是指 p2a() 放到 main() 裡面完成程式嗎?

sim(d,cnt,20000);
的 20000 大概是指擲骰子幾次

剩下 d 及 cnt 可以放到 p2a() 裡當引數
因為 printC(cnt); 是 統計骰子點數總和
所以可知 cnt 是骰子的紀錄

p2a() 應該是寫在 void sim() 裡

void sim(int dist[6], int cnt[6], int runs) { // 模擬骰子點數
//在這加入你的程式碼
int i;
int num;
for(i=0;i<runs;i++){
num=p2a(dist)-1;
if (num>=0) {
cnt[num]=cnt[num]+1;
}
}
}

rand()%sum; 可產生0~9的亂數
return i+1 產生1~6的點數
p2a(dist)-1 為何減一,因為C的陣列維度從0啟始,而p2a產生範圍是1~6所以減一
mini 目前離線  
送花文章: 2000, 收花文章: 7958 篇, 收花: 26750 次
回覆時引用此帖
舊 2005-08-04, 11:37 PM   #6 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 12955
在線等級: 級別:0 | 在線時長:0小時 | 升級還需:5小時
註冊日期: 2002-12-16
VIP期限: 2006-02
文章: 72
精華: 0
預設

嗯嗯~~謝謝大大喔~~^^
kcfs983 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 01:48 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1