|
Post by huangno1 on Mar 2, 2017 20:25:43 GMT -8
程式說明
請撰寫一個程式,在一串整數值中搜尋是否存在指定的數值。若該數值存在,請輸出其所有出現的位置(位置從 0 起算)。
使用者會先輸入資料個數 N (N <= 100),接著輸入 N 個整數,最後輸入待搜尋的數值 k。
p.s. search() 會將 k 出現的位置存入 appear_pos,出現次數存入 appear_times。
輸入範例
5 1 2 3 4 3 3
輸出範例
3 appears at position(s): 2 4
輸入範例
5 1 2 3 4 5 6
輸出範例
6 is not found.
#include <stdio.h>
void search(
int data [ ] , int appear_pos [ ] , int *appear_times , int N , int key
)
{
int i , j = 0 ;
for ( i = 0 ; i < N ; i ++ )
{
if ( data [ i ] == key )
{
*appear_times += 1 ;
appear_pos [ j ] = i ;
j ++ ;
}
}
}
// ------------------------------------------------
int main()
{
int data[100]={}, N=0;
scanf("%d", &N);
for (int i=0; i<N; i+=1)
{
scanf("%d", &data);
}
int key=0;
scanf("%d", &key);
int appear_pos[100]={}, appear_times=0;
search(
data , appear_pos , &appear_times , N , key
);
if (appear_times>0)
{
printf("%d appears at position(s):", key);
for (int i=0; i<appear_times; i+=1)
{
printf(" %d", appear_pos);
}
}
else
{
printf("%d is not found.", key);
}
return 0;
}
|
|