|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2005-08-04, 06:44 PM | #1 |
註冊會員
|
誰可幫我看看問題在哪
#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才對~~幫幫忙~~謝嚕 |
送花文章: 0,
|
2005-08-04, 07:17 PM | #2 (permalink) |
註冊會員
|
還有這一題@@~有大大可幫我解嗎??
/* (一) 模擬擲骰子 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; } |
送花文章: 0,
|
2005-08-04, 10:58 PM | #5 (permalink) |
管理版主
|
是指 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所以減一 |
送花文章: 2027,
|