看板 Programming 關於我們 聯絡資訊
各位好~ 小弟我剛接觸C沒有多久 為了加強程度有上高中生程式解題系同刷一些題目 像這題是有關迴文的題目 題目如下: 迴文的定義為正向,反向讀到的字串均相同 如:abba , abcba ... 等就是迴文 請判斷一個字串是否是一個迴文? 我的疑問是我原本的程式碼在DEV C++執行是沒有問題的 不過拿去網站提交答案是 會一直跑出tle(1s)這個東西 上網稍微查過 似乎是程式執行的太慢?! 不過我檢查過我的程式蠻多次 也不知道哪裡出問題 還請各位指點我一下 讓我知道我程式哪裡有問題 謝謝! #include <stdio.h> #include <stdlib.h> int main(void) { char ch[1000],i=0,sum=0,flag=1; scanf("%s",&ch); while(ch[i]!=0) { i++; sum=sum+1; } for(i=0;i<=sum/2;i++) { if(ch[i]!=ch[(sum-1)-i]) { flag=0; } } if(flag==0) { printf("no\n"); } else { printf("yes\n"); } return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.50.186.119 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1567015506.A.50E.html ※ 編輯: td2100106 (110.50.186.119 臺灣), 08/29/2019 02:08:03
idiont: 不需要system pause125.231.37.217 08/29 03:01
cutekid: printf("請輸入字串") <- ??????1.168.25.219 08/29 03:31
td2100106: 不過我剛剛把system(pause)跟printf110.50.186.119 08/29 09:34
td2100106: 那段刪掉還是跑出一樣的結果110.50.186.119 08/29 09:34
※ 編輯: td2100106 (110.50.186.119 臺灣), 08/29/2019 09:34:50
idiont: char的範圍比1000還小 所以你的i跟sum都可 125.231.37.217 08/29 10:01
idiont: 能overflow 125.231.37.217 08/29 10:01
pmove: 同樓上,原po的程式碼,字串長度需小於1000223.136.232.190 08/29 12:37
pmove: ,但題目有說字串長度小於1000嗎?223.136.232.190 08/29 12:37
idiont: 有哦 125.231.37.217 08/29 12:46
pmove: 那方便公佈題目網址嗎?223.136.232.190 08/29 13:23
pmove: 如果是a022這題的話,我拿到AC了。要注意sc223.136.232.190 08/29 13:42
pmove: anf需要多次執行,可能要用while hold住223.136.232.190 08/29 13:42
pmove: 我把你的code上傳,是WA不是tle,是我搞錯系223.136.232.190 08/29 13:58
pmove: 統?還是?223.136.232.190 08/29 13:58
kiedveian: i 的 type 用 char ? 36.227.35.10 08/29 16:26
kiedveian: 原來上面的推文有講了 36.227.35.10 08/29 16:27
idiont: 我是猜測原po是在問a022 不過題目敘述的輸 223.141.42.186 08/29 18:10
idiont: 入是寫"一個字串" 實際情況我也不清楚 我 223.141.42.186 08/29 18:10
idiont: 沒有自己測試過 223.141.42.186 08/29 18:10
MatTZerS: Scanf 用%s 後面的變數不用&吧 223.139.127.8 10/09 00:56