網域名稱俱樂部


返回   網域名稱俱樂部 > 電腦與網路技術 > 電腦網路相關技術 > 一般軟體與網路使用討論

回覆
 
主題工具
  #21  
舊 2014-02-06, 08:21 PM
yumi yumi 目前離線
進階會員
 
註冊日期: 2005-12-29
文章: 1,373
預設

正确的写法其实就是:
#include <stdio.h>

int main(void)
{

int i,a1[10],a2[10];

for(i=1;i<11;i++){
a1[i-1]=i;
a2[i-1]=a1[i-1];
printf("%d\n",a2[i-1]);}
return 0;
}
__________________
收购各位版友的四字母com、数字米com/net/cc、三杂米com、拼音米。价格随行市价。站内联系。
回覆時引用此篇文章
  #22  
舊 2014-02-06, 08:24 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 22,995
預設

引用:
作者: yumi 查看文章
正确的写法其实就是:
#include <stdio.h>

int main(void)
{

int i,a1[10],a2[10];

for(i=1;i<11;i++){
a1[i-1]=i;
a2[i-1]=a1[i-1];
printf("%d\n",a2[i-1]);}
return 0;
}



many thanks!
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
  #23  
舊 2014-02-06, 10:09 PM
lukawa lukawa 目前離線
進階會員
 
註冊日期: 2002-09-23
文章: 117
預設

其實哈大已經開始碰觸到C(C++)"精華的地方了",其實也就是討厭的地方
也就是記憶體管理跟指標,今天a1 a2 兩個陣列其實都是指標pointer
C語言強大在這個地方,失敗也在這個地方,我們透過指標可以快速輕易的
存取到記憶體中個個位子,但是並不是每個位子,你都是可以存取的,所以要非常的小心
你得寫法事實上已經超過這個陣列的範圍了,但是他在你得電腦上跑也許沒有問題
換個環境可能問題就會產生,這是非常討厭的,因為你有時候很難抓到這種BUG
但是也是因為這樣方便的存取記憶體的方式,所以C寫出來的程式非常的有效率,
回覆時引用此篇文章
  #24  
舊 2014-02-06, 10:32 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 22,995
預設

引用:
作者: lukawa 查看文章
也就是記憶體管理跟指標,今天a1 a2 兩個陣列其實都是指標pointer
C語言強大在這個地方,失敗也在這個地方,我們透過指標可以快速輕易的
存取到記憶體中個個位子,但是並不是每個位子,你都是可以存取的,所以要非常的小心
你得寫法事實上已經超過這個陣列的範圍了,但是他在你得電腦上跑也許沒有問題
換個環境可能問題就會產生,這是非常討厭的,因為你有時候很難抓到這種BUG
但是也是因為這樣方便的存取記憶體的方式,所以C寫出來的程式非常的有效率,


我剛才也有自己「玩」一下,例如把for(i=1;i<11;i++)這裡改成for(i=1;i<123;i++)之類超出原來該有元素很多的數目,結果跑出來的結果十分不同,我的電腦通常會持續跑出幾十甚上百的數列,但幾乎都會跟著當掉而被迫要關掉這個程式。就如您說的,會發生不可知的結果。
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
  #25  
舊 2014-02-17, 05:35 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 22,995
預設

再請教一個問題,這是一個陣列的程式。就是有五個server以及各server的user有多少人?如今輸入一個server的號碼,就去列出該server的user是多少人。如果輸入的server不在其中就回答not listed。
引用:
#include <stdio.h>

int main(void)
{

int serverusers[5][2]=
{
1,14,
2,28,
3,19,
4,8,
5,15};

int server;
int i;

printf("enter the server number: \n");
scanf("%d",&server);

//look it up in the table.
for(i=0;i<5;i++)
if(server==serverusers[i][0]){
printf("there are %d users on server %d.\n",serverusers[i][1],server);
break;
}
//report error if not found.
if(i==5) printf("server not listed.\n");
return 0;
}
為何最後以i等於5的話來判定輸入的值不在預設之中?

thanks
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
  #26  
舊 2014-02-17, 05:43 PM
best-url 的頭像
best-url best-url 目前離線
站務管理
 
註冊日期: 2003-08-11
住址: IDN Club
文章: 9,925
發送 MSN 消息給 best-url
預設

引用:
作者: 哈啦 查看文章
再請教一個問題,這是一個陣列的程式。就是有五個server以及各server的user有多少人?如今輸入一個server的號碼,就去列出該server的user是多少人。如果輸入的server不在其中就回答not listed。


為何最後以i等於5的話來判定輸入的值不在預設之中?

thanks

以前 不是有一個 站長俱樂部嗎?!

那裡應該有很多懂程式的高手嗎?
回覆時引用此篇文章
  #27  
舊 2014-02-17, 07:52 PM
lukawa lukawa 目前離線
進階會員
 
註冊日期: 2002-09-23
文章: 117
預設

for(i=0;i<5;i++) 會由 0 跑到 4 (五次) 一直跑到i = 5 時
才會跳出迴圈,所以當i = 5 時,也等義於找不到資料的意思

另外請教哈大,目前是用什麼IDE在開發呢?
回覆時引用此篇文章
  #28  
舊 2014-02-17, 08:07 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 22,995
預設

引用:
作者: lukawa 查看文章
for(i=0;i<5;i++) 會由 0 跑到 4 (五次) 一直跑到i = 5 時
才會跳出迴圈,所以當i = 5 時,也等義於找不到資料的意思

另外請教哈大,目前是用什麼IDE在開發呢?
原來是這個邏輯, 但我如果用i==6 or i==9等,則程式就出錯,不會印出not listed,為什麼呢?

我用的是devcpp的軟體來編和跑。
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
  #29  
舊 2014-02-17, 08:58 PM
lukawa lukawa 目前離線
進階會員
 
註冊日期: 2002-09-23
文章: 117
預設

因為跑出for(i=0;i<5;i++)這個迴圈以後,就不會再執行到i++
所以當然i只會跑到5不會繼續往下加

如果有使用IDE,應該有step by step debug的功能
你可以一行一行去看i的值的變化,這樣你就會很清楚
i為什麼只會跑到5
回覆時引用此篇文章
  #30  
舊 2014-02-17, 09:07 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 22,995
預設

引用:
作者: lukawa 查看文章
因為跑出for(i=0;i<5;i++)這個迴圈以後,就不會再執行到i++
所以當然i只會跑到5不會繼續往下加

如果有使用IDE,應該有step by step debug的功能
你可以一行一行去看i的值的變化,這樣你就會很清楚
i為什麼只會跑到5
了解,因為我主要是這個i==5的推理想不通,為何會想出要用i==5來達到這個目的?為何i==6,7...就不行? 所以現在就是因為i最後是跑到5而停下來,因此如果i==5就不符合之前的if(),但i確實有到5就是了?

這個step by step的功能尚找到。
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
回覆

主題工具

發文規則
不可以發表新主題
不可以發表回覆
不可以上傳附件
不可以編輯自己的文章

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼



所有時間均為 +8。現在的時間是 06:46 PM


本站主機由網易虛擬主機代管
Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.