[問題] 程式碼片段解讀
整個程式的程式碼是這樣
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define random() rand()%49+1
int main(){
srand(time(0));
int arr[6],i,count=1,num;
arr[0]=random();
while(count<6){
num=random();
for(i=0;i<count;i++){
if(arr[i]==num) break;
}
if(i==count) arr[
count++]=num;
}
for(i=0;i<6;i++) printf(" %d",arr[i]);
system("pause");
return 0;
}
我對以下這段的程式碼有問題:
while(count<6){
num=random();
for(i=0;i<count;i++)
{
if(arr[i]==num)
break;
}
if(i==count)
arr[ count++]=num;
}
這段的程式碼我個人的解讀是
先檢查count值是否小於6,如果小於的話就執行while迴圈
再來num先取得一個亂數值
再來一個for迴圈,比對arr[i]是否等於num,如果等於就跳出迴圈
再來比對i和count值是否相等,如果等於,把num值給arr[count++]
最後再回while迴圈檢查count是否有小於6
我想請問各位大大,我這樣的解讀是否有問題,還有if(i==count)這邊,
我們沒設值給i,這樣i如何跟count比對?另外arr[count++]=num,
把num值給arr陣列,可是count的初值是1,這樣arr陣列豈不就沒有arr[0]的值嗎??
麻煩各位大大幫小弟解惑一下~謝謝各位~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.30.208.91
→
10/22 15:10, , 1F
10/22 15:10, 1F
→
10/22 15:11, , 2F
10/22 15:11, 2F
→
10/22 15:20, , 3F
10/22 15:20, 3F
推
10/22 15:58, , 4F
10/22 15:58, 4F
→
10/22 16:04, , 5F
10/22 16:04, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
-4
5