fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. // 線形探索と出現回数カウント
  5. int linear_search_and_count(int a[], int n, int x, int *first_index) {
  6. int i, count = 0;
  7. *first_index = -1; // 初期値を -1 に設定(見つからない場合のため)
  8.  
  9. for (i = 0; i < n; i++) {
  10. if (a[i] == x) {
  11. count++; // 出現回数を増加
  12. if (*first_index == -1) {
  13. *first_index = i; // 最初に見つけたインデックスを保存
  14. }
  15. }
  16. }
  17.  
  18. return count; // 出現回数を返す
  19. }
  20.  
  21. int main(void) {
  22. int n, x, i;
  23. int *a;
  24. int first_index = -1, count = 0;
  25.  
  26. // 入力: 配列サイズと探索対象
  27. scanf("%d %d", &n, &x);
  28. a = (int *)malloc(sizeof(int) * n);
  29. if (a == NULL) {
  30. printf("ERROR\n");
  31. return -1;
  32. }
  33.  
  34. // 配列の入力
  35. for (i = 0; i < n; i++) {
  36. scanf("%d", &a[i]);
  37. }
  38.  
  39. // 線形探索と出現回数カウント
  40. count = linear_search_and_count(a, n, x, &first_index);
  41.  
  42. // 結果の出力
  43. if (count > 0) {
  44. printf("a[%d] = %d (found %d time(s))\n", first_index, a[first_index], count);
  45. } else {
  46. printf("not found\n");
  47. }
  48.  
  49. free(a);
  50. return 0;
  51. }
  52.  
Success #stdin #stdout 0s 5256KB
stdin
50 5
12	3	4	12	11	5	7	15	18	0	0	5	10	6	15	6	4	10	8	16	12	9	10	11	12	9	5	7	10	14	3	17	11	10	7	15	5	2	6	3	19	7	8	16	13	3	18	10	19	5
stdout
a[5] = 5 (found 5 time(s))