![]() |
有人可以幫我解題(C++)嗎~謝謝
用C++寫出
1:移除一字串的頭跟尾的所有空白 2:將字串中一個以上的連續空白以單一空白來取代 3:把1.2的功能併在一起 PS:可以的話這題也幫幫忙@@ 1:輸出一對骰子各種組合出現的次數 2:輸出一對骰子各種組合出現的頻率 3:輸出一對骰子各種總合(2.3.4.....12)的次數 4:輸出一對骰子各種總合(2.3.4.....12)的頻率 麻煩會C++的大大幫忙了~~感恩 |
#include <stdio.h>
main() { int i,j=0,flag=0; char string[100],stringCopy[100]; printf("輸入字串"); gets(string); printf("%s\n",string); for(i=0;i<100 && string[i]!='\0';i++) { if(i!=0) { if(string[i]!=' ') { if(string[i-1]== ' ' && j!=0) { stringCopy[j++] = ' '; stringCopy[j++] = string[i]; } else { stringCopy[j++] = string[i]; } } } else { if(string[i]!=' ') { stringCopy[j++] = string[i]; } } } printf("%d\n",j); stringCopy[j]='\0'; printf("<%s>",stringCopy); } /*第二提我看不太董意思*/ |
嗯嗯~~感謝喔~~
第2題的意思是骰子不是有1~6嗎~就是就2顆骰子1~6的各種組合 例如:骰10次~2顆骰子加起來多少~會出現的跟次數 |
第二題就是迴圈內再加迴圈
for(i=1;i<=6;i++) { for(j=1;j<=6;j++) { } } 會出現 [i j] 1 1 1 2 1 3 1 4 1 5 1 6 2 1 2 2 2 3 ... 6 6 (這裡不寫出全部) 但可看出 因為 2顆骰子長的都一樣 上面沒編號或記號 來做區別 所以 1 2 = 2 1 因此可以說 1 2 出現了兩次(或說 2 1 出現了兩次,但還是用 1 2 來講會比較好) 所以 Q:各種組合出現的次數 A:要設計一組記錄次數用的 三維陣列 num[i , j , 0] 每運算一次就加一 num[i , j , 0] = num[i , j , 0] + 1 但為了處理 1 2 = 2 1 的情形修改成 如果 num[j , i , 0] >= 1 則是 num[i , j , 0] = num[i , j , 0] + 1 最後對 num[i , j , 0] >= 1 才做處理 (所謂的處理就是您問的第 1、2、3、4 問題) 比如 "各種組合出現的次數" for(i=1;i<=6;i++) { for(j=1;j<=6;j++) { if(num[i , j , 0] >= 1){ printf("%d %d 出現%d次",i,j,num[i , j , 0]); } } } 比較少寫 C 所以沒寫出完整的程式碼 剩下的實現也交給版友自己發揮了 祝你好運~ |
嗯嗯~~謝嚕~~幫了我很大的忙
|
所有時間均為台北時間。現在的時間是 05:14 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *