設計一程式,使用陣列紀錄3個人的姓名與電話表,由使用者輸入姓名,然後輸出對應的電話號碼
姓名 電話
大雄 03567
宜靜 02255
技安 07553
執行結果一:
請輸入要查詢的對象:宜靜
電話 02255
執行結果二:
請輸入要查詢的對象:小叮噹
查無此人
我的程式非常的奇怪
幫幫忙是哪邊錯了
#include
using namespace std;
int main()
{
char a[3]={'大雄','宜靜','技安'};
int b[3]={03567,02255,07553};
char num;
cout << "請輸入人名 :";
cin >> num;
for(int i=0;i<3;++i) //使用迴圈尋找陣列裡所有的值
{
if(int strcmp (num,a) ==0)
cout<
else
cout << "查無此人 "<< endl ; //沒找到時印出找不到
return 0;
}
}
2007-06-13 08:46:01 · 3 個解答 · 發問者 ? 1 in 電腦與網際網路 ➔ 程式設計
to 東邪:你的我不能編譯><我用的是visual c++
to 小綿羊:你的可以,可是查無此人功能不能用><
to 商行:謝謝你的網站
2007-06-13 16:36:44 · update #1
修改不少地方,已可正常運作。//using namespace std;這一行,我將它加註,若你的編譯環境需要這一行,請取消其註解//。
#include
#include
//using namespace std;
int main()
{
char *a[3]={"大雄","宜靜","技安"}; //用字串指標陣列的方式宣告及給予初值
char *b[3]={"03567","02255","07553"}; //同上。
char num[9]; //最多容納 8 個英數字元或4個中文字
cout << "請輸入人名 :";
cin >> num;
for(int i=0;i<3;++i) //使用迴圈尋找陣列裡所有的值
if(strcmp (num,a[i]) ==0)
cout<
cout << "查無此人 "<< endl ; //沒找到時印出查無此人
return 0;
}
2007-06-13 18:51:35 補充:
你原程式的電話號碼宣告如下:
int b[3]={03567,02255,07553};
這犯了邏輯錯誤,這些號碼都是0開頭,會被C編譯以八進位數視之。比如 03567,會被轉為十進位的 1911,所以我才索性將它們全改成字串。事實上有時候電話號碼會含非數字的符號,所以還是用字串比較具相容性。
2007-06-13 09:34:44 · answer #1 · answered by 東邪無弓 7 · 0⤊ 0⤋
//Power by Visual Studio 2005
#include
#include
#include
using namespace std;
int main(int argc, char** argv)
{
//==========START==========//
string a[3]={"大雄","宜靜","技安"},num;
bool flag;
int b[3]={03567,02255,07553};
cout<<"請輸入人名 : ",cin >>num;
for(int i=0;i<3;i++)//使用迴圈尋找陣列裡所有的值
{
if(a[i].compare(num)==0)//或 num.compare(a[i])==0
{
cout<
break;
}
}
if(flag==false){
cout<<"查無此人"<
//==========END==========//
system("PAUSE");
return EXIT_SUCCESS;
}
2007-06-13 12:25:29 · answer #2 · answered by Big_John-tw 7 · 0⤊ 0⤋
太久沒寫了
忘了怎麼寫
你去這個網頁
他會教你如何寫
http://elearning.stut.edu.tw/electric/EE/TEACH/C++/C++INDEX.HTM
2007-06-13 08:53:22 · answer #3 · answered by 軍興商行 2 · 0⤊ 0⤋