English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我的作業是 輸入一個長字串 再長字串裡的每個字元後面依序+上一個整數輸出
但是空白字元不用例如"
輸入 abcdefg 輸出 a1b2c3d4e5f6
輸入 I am Mary 輸出 I1 a2m3 M4a5r6y7
我怎麼做都沒辦法讓空白字元後面不要輸出整數
有沒有人能告訴我該怎麼改 我的程式碼:
#include
#include

void main()
{
char input[200] ;
int n;
int i;

printf("key in your input:") ;
gets(input);
for(n=0;input[n] != '\\0';n++)
{

if(input[n]==' ' )
printf(" ");


else

printf("%c",input[n]);
printf("%d",n+1);

}

}
可以告訴我是哪裡錯了
或是可以用什麼其他方法

2006-11-11 14:30:21 · 3 個解答 · 發問者 阿中 1 in 電腦與網際網路 程式設計

3 個解答

#include #include void main(){char input[200] ;int n;int i;printf("key in your input:") ;gets(input);for(n=0;input[n] != '\0';n++){ if(input[n]==' ' )printf(" ");else {printf("%c",input[n]);printf("%d",n+1);}}}

2006-11-11 19:53:50 補充:
//上面稍有錯誤,for迴圈應該改為:int space = 0 ;for(n=0;input[n] != '\0';n++){ if(input[n]==' ' ){printf(" ");space++;}else {printf("%c",input[n]);printf("%d",n+1-space);}}

2006-11-11 14:47:20 · answer #1 · answered by YEN 7 · 0 0

就程式本身而言,002比較好。
但 001 寫的沒錯,時間上比較早。

而版大要的是改錯,並沒說要最〝佳化〞;
所以,只好向 002 抱歉了。

2006-11-24 21:34:45 · answer #2 · answered by ? 5 · 0 0

#include
#include

void main()
{
char input[200] ;
int n;
int i;

printf("key in your input:") ;
gets(input);
for(n=0,i=1;input[n] != '\0';n++) /*你已經有設變數 i 就以 i 做為數字的累算*/
{

if(input[n]==' ' )
printf(" ");


else

printf("%c",input[n]);
printf("%d",i++); /*把 n 改成 i 才不會出現連空白也算進去的現象*/

}

}


由於你是 以 n 做 for迴圈 所以雖然你有檢查空白處 不印出數字
但n還是會繼續 +1 你出現錯誤應該指的是這個吧
還有 兩個 printf 可以合併成一個printf("%c%d",intput[n],i++);即可

2006-11-11 23:15:10 補充:
你空白後面會有數字是因為你的列印數子並不數在if...else之內所以一定都會印出來把你的else 以下的兩個printf並在一起成為printf("%c%d",intput[n],i++);大概就是你要的答案了

2006-11-11 18:06:14 · answer #3 · answered by 過路人 4 · 0 0

fedest.com, questions and answers