2014-06-29 68 views
-5

如果該項目在數組中,請計算它在數組中存儲的次數以及它們各自的陣列位置。如何使用C++在數組中搜索一個項目?

如何在我的程序中添加此輸出。

這裏是我的代碼...

int array[15]={28,3,16,4,3,16,5,8,4,12,5,4,8,21,40}; 
int x=0; 
int done=0; 
int item; 

cout<<"Input an item to be searched:"; 
cin>>item; 

while(done!=1&&x<15) 
{ 
    if(item==array[x]) 
    { 
    cout<<"Found item"<<item<<" in the index of " <<x; 
    done=1; 
    } 
    else 
    { 
    x++; 
    } 
} 
cout<<" item "<<item<<" is not found"; 

這應該是輸出:

項目要搜索:4
號發生:3
數組位置:3 8 11

+2

你的問題到底是什麼? – KjMag

+2

大學作業不費力氣。 –

+0

聽起來像功課 – rock321987

回答

1

取一個數組location,大小爲15。遍歷數組array,如果找到元素,則將該索引存儲到location

int k = 0, location[15] 
while(x < 15) 
{ 
    if(item == array[x]) 
    { 
     location[k++] = x; 
    } 
    x++; 
} 
if(k > 0) 
{ 
    cout << "Found item" << item << " in the index of:\n" ; 
    for(int i = 0; i < k; i++) 
    { 
     cout << location[i] << endl; 
    } 
} 
else 
    cout << "Item not found\n" ; 
+0

使用std :: vector會更好,因爲你不知道會發生多少次事件。這可能不是這個例子的問題,但是在大數組的情況下,這種方法是不可行的。 – KjMag

+0

@ user3564091;是。同意。 – haccks

0
Loop through all the locations like this: 
for(int i = 0; i < (sizeof(array)/sizeof(array[0]); i++) { 
    if(array[i] == item) { 
     count++; 
     //save the locations in an array, or a string already 
    } 
} cout << blabla 
1

添加這頭

int result[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; 

嘗試插入下面的代碼到現有

while(x<15) 
{ 
    if(item==array[x]) 
    { 
    result[x] = 1; 
    // cout<<"Found item"<<item<<" in the index of " <<x; 
    done++; 
    } 
    x++; 
} 

,並顯示結果

cout << "Item to be searched: " << item; 
cout << "number of occurrence : " << done; 
cout << "array locations : "; 

x = 0; 
while(x<15) 
{ 
    if(result[x]==1) 
    { 
     cout << x << ' '; 
    } 
} 
相關問題