台灣最大程式設計社群網站
線上人數
1158
 
會員總數:245979
討論主題:189557
歡迎您免費加入會員
討論區列表 >> C/C++ >> 字元陣列中索引問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
字元陣列中索引問題
價值 : 200 QP  點閱數:949 回應數:6
樓主

XiKe Anzek Joe
門外漢
0 1
10 2
發送站內信

請建立C程式在輸入一個字串後,將字元陣列中索引為奇數(或偶數,由學號最後一碼決定)的字元抽出來建立成新字串,最後顯示字串內容,例如:輸入"computer",奇數顯示”cmue” 偶數顯示"optr"
輸出的只會出現偶數不會出現奇數求幫忙,
#include<iostream>
#include<stdio.h>
int main()
{
char b[128];
int i,id;
if(0>=printf("Enter ID:") || 0>=scanf("%d",&id));
for(; printf("enter string:") && scanf("%s",b);){
for(i=0;b[i];++i)if((1&id)!=(1&i))printf("%c",b[i]);
printf("\n");
}
return 1;
system("pause");
}




搜尋相關Tags的文章: [ C++ ] ,
本篇文章發表於2016-03-24 21:54
1樓
回應

Raymond
檢舉此回應
>請建立C程式在..

既然是 C 程式, 為什麼要 #include<iostream>?

>if(0>=printf("Enter ID:") || 0>=scanf("%d",&id));

你知道 printf() 跟 scanf() 回傳的值代表什麼嗎? 你的 if() 的目的是什麼?

請用適當的空格與斷行來提升原始碼的可讀性. 像這個

就是不合格的寫法. 至少要這麼寫:

這不只是美觀與否的問題, 這關係到在用 debugger 逐行執行的時候, 你可以很清楚的「看到」它執行的邏輯.


雖然不是很清楚「由學號最後一碼決定」是什麼意思, 看你的程式大概就是學號是否奇數或偶數的意思.

問程式的問題, 除了貼出題目, 程式外, 你也應該貼出執行的範例, 包括各種不同的輸入, 預期的輸出或計算結果. 如果程式能夠編譯, 你也應該貼出你程式執行時得到的實際結果, 並說明跟預期的有什麼不同.

因為根本不知道你預期的程式執行是怎樣的, 所以只能建議你加入適當的斷行後, 用你編譯器的 debugger 去逐行的執行看看問題是什麼.

本篇文章回覆於2016-03-25 01:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

XiKe Anzek Joe
檢舉此回應






#include<stdio.h>
int main()
{
char b[128];
int i,id;
if(0>=printf("Enter ID:") || 0>=scanf("%d",&id));
for(; printf("enter string:") && scanf("%s",b);){
for(i=0;b[i];++i)if((1&id)!=(1&i))printf("%c",b[i]);
printf("\n");
}
getc(stdin);
}
本篇文章回覆於2016-03-25 20:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

XiKe Anzek Joe
檢舉此回應
修正:如果是奇數會從d04702 出現
本篇文章回覆於2016-03-25 20:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Raymond
檢舉此回應
你的執行本來就有問題, 'id' 是個整數類型, 你輸入的第一個字元就不會被 scanf("%d",&id) 接受, 所以 id 就保持它原來沒有初始化的亂數.

因為資料沒有被第一個 scanf() 接受, 所以資料還保留在輸入端裡, 第二個 scanf("%s", b) 就會把這些資料讀入到 b 陣列.

然後就執行第二層的 for() 迴圈, 並依據 (1 % id) != (1 & i) 這個判斷式來輸出. 至於輸出什麼, 則要視 id 的內容而決定. 但去讀取一個沒有初始化的物件是會導致不可預期的結果的.

如果你有聽我的建議, 把程式加上斷行, 並用 debugger 來逐行執行, 自己也可以找到問題出在哪裡.

另外, 你還沒有回答我上面回覆的問題.

最後, 請不要另發私訊給我.
本篇文章回覆於2016-03-25 23:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

wei
檢舉此回應
回樓上的大大,幹嘛跟學生認真呢?(雖然我自己也是學生啦 哈哈)看就知道 老師派作業簿會做上來討答案而已,如果真的以後要幹這行,拿這種程式碼出來,會有老闆要請嗎?

本篇文章回覆於2016-07-31 21:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

wei
檢舉此回應
測試一下吧 我只用computer 測試這個程式
本篇文章回覆於2016-07-31 21:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.