fork download
  1. // Q.2
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. #define DATA_MAX 50
  7.  
  8. int linear_search(int data[],int key,int num)
  9. {
  10. int i;
  11.  
  12. for (i = 0; i < num; i++) {
  13. if (data[i] == key) return i;
  14. }
  15. return -1;
  16. }
  17.  
  18. void random_data(int data[],int num)
  19. {
  20. int i, n;
  21.  
  22. for (i = 0; i < num; i++) {
  23. data[i] = -1;
  24. }
  25. for (i = 0; i < num; ) {
  26. n = (int)((double)num*rand()/(1.0+RAND_MAX));
  27. if (data[n] != -1) continue;
  28. data[n] = i;
  29. i++;
  30. }
  31. }
  32.  
  33. int main()
  34. {
  35. int data[DATA_MAX];
  36. int num, key, i;
  37.  
  38. srand(1);
  39.  
  40. printf("データの数(MAX:%d)>", DATA_MAX);
  41. scanf("%d", &num);
  42. random_data(data, num);
  43. for (i = 0; i < num; i++) {
  44. printf("%d %d\n", i, data[i]);
  45. }
  46.  
  47. printf("目的データ>");
  48. scanf("%d", &key);
  49. i = linear_search(data, key, num);
  50. if (i == -1) {
  51. printf("見つかりませんでした\n");
  52. } else {
  53. printf("%d\n", i);
  54. }
  55.  
  56. return 0;
  57. }
  58.  
Success #stdin #stdout 0.01s 1680KB
stdin
10
5
stdout
データの数(MAX:50)>0 9
1 4
2 5
3 1
4 7
5 6
6 8
7 2
8 0
9 3
目的データ>2