fork(1) download
  1. <ソートアルゴリズムの実装>
  2. テンプレートを使用する
  3.  
  4. 課題:
  5. 交換ソートの実装
  6. 選択ソート
  7. 挿入ソート
  8.  
  9. 添付ファイル:
  10. 交換ソート
  11. 選択ソート
  12. 挿入ソート
  13.  
  14. コンパイル方法
  15. 通常版
  16. bcc32 sort.c
  17. ソート結果出力版
  18. bcc32 –DDEBUG sort.c
  19.  
  20. 実行例
  21. > sort
  22. データタイプ(1-3)
  23. ランダム:1 昇順:2 降順:3 1
  24. データ数: 10
  25. 比較: 45 回 交換: 20
  26.  
  27. (ソートテンプレート)
  28. #include <stdio.h>
  29. #include <stdlib.h>
  30. #include <malloc.h>
  31.  
  32. void sort(int *data, int n);
  33.  
  34. int compare(int a, int b);
  35.  
  36. void swap(int *d, int a, int b);
  37.  
  38. void initRandData(int *d, int n);
  39.  
  40. void initAscendingData(int *d, int n);
  41.  
  42. void initDescendingData(int *d, int n);
  43.  
  44. void printdata(int *d, int n);
  45.  
  46.  
  47. unsigned long counterSwap;
  48. unsigned long counterComp;
  49.  
  50.  
  51.  
  52.  
  53. void sort(int data[], int n)
  54. {
  55. /* ここにソートプログラムを作成 */
  56. }
  57.  
  58.  
  59.  
  60. int main(void)
  61. {
  62. int *data;
  63. int n;
  64. int i;
  65. int com;
  66. void (* initData[3])(int *d, int x) = {initRandData,
  67. initAscendingData,
  68. initDescendingData };
  69.  
  70. do {
  71. printf("データタイプ(1-3)\n");
  72. printf("ランダム:1 昇順:2 降順:3 ");
  73. scanf("%d", &com);
  74. } while (! (com==0||com==1||com==2||com==3));
  75.  
  76. printf("データ数: ");
  77. scanf("%d", &n);
  78.  
  79. data = (int*) malloc(sizeof(int) *n);
  80. if (com==0) {
  81. for (i=0; i<n; i++) {
  82. scanf("%d", &data[i]);
  83. }
  84. } else {
  85. initData[com-1](data, n);
  86. }
  87.  
  88. #ifdef DEBUG
  89. printdata(data, n);
  90. #endif
  91.  
  92. counterSwap = 0;
  93. counterComp = 0;
  94.  
  95. sort(data, n);
  96.  
  97. #ifdef DEBUG
  98. printdata(data, n);
  99. #endif
  100.  
  101. printf(" 比較: %d 回\n", counterComp);
  102. printf(" 交換: %d 回\n", counterSwap);
  103.  
  104. return 0;
  105. }
  106.  
  107. int compare(int a, int b)
  108. {
  109. counterComp++;
  110. return (a<b);
  111. }
  112.  
  113. void swap(int *d, int a, int b)
  114. {
  115. int tmp;
  116.  
  117. counterSwap++;
  118. tmp = d[a];
  119. d[a] = d[b];
  120. d[b] = tmp;
  121. }
  122.  
  123. void initRandData(int *d, int n)
  124. {
  125. int i, s;
  126. srand(time(NULL));
  127. s=n*10;
  128. for(i=0; i<n; i++) d[i]=rand()%s;
  129. }
  130.  
  131. void initAscendingData(int *d, int n)
  132. {
  133. int i;
  134. for(i=0; i<n; i++) d[i]=i;
  135. }
  136.  
  137. void initDescendingData(int *d, int n)
  138. {
  139. int i;
  140. for(i=0; i<n; i++) d[i]=n-i-1;
  141. }
  142.  
  143. void printdata(int *d, int n)
  144. {
  145. int i;
  146.  
  147. for (i=0; i<n; i++) printf("%d ", d[i]);
  148. printf("\n");
  149. }
  150.  
  151.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: illegal character: \65308
??????????????
^
Main.java:1: error: illegal character: \65310
??????????????
             ^
Main.java:4: error: illegal character: \65306
???
  ^
Main.java:9: error: illegal character: \65306
???????
      ^
Main.java:18: error: illegal character: \8211
bcc32 ?DDEBUG sort.c
      ^
Main.java:28: error: illegal character: \35
#include <stdio.h>
^
Main.java:29: error: illegal character: \35
#include <stdlib.h>
^
Main.java:30: error: illegal character: \35
#include <malloc.h>
^
Main.java:34: error: class, interface, or enum expected
int compare(int a, int b);
^
Main.java:36: error: class, interface, or enum expected
void swap(int *d, int a, int b);
^
Main.java:38: error: class, interface, or enum expected
void initRandData(int *d, int n);
^
Main.java:40: error: class, interface, or enum expected
void initAscendingData(int *d, int n);
^
Main.java:42: error: class, interface, or enum expected
void initDescendingData(int *d, int n);
^
Main.java:44: error: class, interface, or enum expected
void printdata(int *d, int n);
^
Main.java:47: error: class, interface, or enum expected
unsigned long counterSwap;
^
Main.java:48: error: class, interface, or enum expected
unsigned long counterComp;
^
Main.java:53: error: class, interface, or enum expected
void sort(int data[], int n)
^
Main.java:63: error: class, interface, or enum expected
	int n;
	^
Main.java:64: error: class, interface, or enum expected
	int i;
	^
Main.java:65: error: class, interface, or enum expected
	int com;
	^
Main.java:66: error: class, interface, or enum expected
	void (* initData[3])(int *d, int x) = {initRandData,
	^
Main.java:70: error: class, interface, or enum expected
	do {
	^
Main.java:72: error: class, interface, or enum expected
		printf("????:1 ??:2 ??:3  ");
		^
Main.java:73: error: class, interface, or enum expected
		scanf("%d", &com);
		^
Main.java:74: error: class, interface, or enum expected
	} while (! (com==0||com==1||com==2||com==3));
	^
Main.java:76: error: class, interface, or enum expected
	printf("????: ");
	^
Main.java:77: error: class, interface, or enum expected
	scanf("%d", &n);
	^
Main.java:79: error: class, interface, or enum expected
	data = (int*) malloc(sizeof(int) *n);
	^
Main.java:80: error: class, interface, or enum expected
	if (com==0) {
	^
Main.java:81: error: class, interface, or enum expected
		for (i=0; i<n; i++) {
		          ^
Main.java:81: error: class, interface, or enum expected
		for (i=0; i<n; i++) {
		               ^
Main.java:83: error: class, interface, or enum expected
		}
		^
Main.java:86: error: class, interface, or enum expected
	}
	^
Main.java:88: error: illegal character: \35
#ifdef DEBUG
^
Main.java:90: error: illegal character: \35
#endif
^
Main.java:92: error: class, interface, or enum expected
	counterSwap = 0;
	^
Main.java:93: error: class, interface, or enum expected
	counterComp = 0;
	^
Main.java:95: error: class, interface, or enum expected
	sort(data, n);
	^
Main.java:97: error: illegal character: \35
#ifdef DEBUG
^
Main.java:97: error: class, interface, or enum expected
#ifdef DEBUG
       ^
Main.java:99: error: illegal character: \35
#endif
^
Main.java:101: error: class, interface, or enum expected
	printf(" ??: %d ?\n", counterComp);
	^
Main.java:102: error: class, interface, or enum expected
	printf(" ??: %d ?\n", counterSwap);
	^
Main.java:104: error: class, interface, or enum expected
	return 0;
	^
Main.java:105: error: class, interface, or enum expected
}
^
Main.java:110: error: class, interface, or enum expected
	return (a<b);
	^
Main.java:111: error: class, interface, or enum expected
}
^
Main.java:117: error: class, interface, or enum expected
	counterSwap++;
	^
Main.java:118: error: class, interface, or enum expected
	tmp = d[a];
	^
Main.java:119: error: class, interface, or enum expected
	d[a] = d[b];
	^
Main.java:120: error: class, interface, or enum expected
	d[b] = tmp;
	^
Main.java:121: error: class, interface, or enum expected
}
^
Main.java:126: error: class, interface, or enum expected
	srand(time(NULL));
	^
Main.java:127: error: class, interface, or enum expected
	s=n*10;
	^
Main.java:128: error: class, interface, or enum expected
	for(i=0; i<n; i++) d[i]=rand()%s;
	^
Main.java:128: error: class, interface, or enum expected
	for(i=0; i<n; i++) d[i]=rand()%s;
	         ^
Main.java:128: error: class, interface, or enum expected
	for(i=0; i<n; i++) d[i]=rand()%s;
	              ^
Main.java:129: error: class, interface, or enum expected
}
^
Main.java:134: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=i;
	^
Main.java:134: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=i;
	         ^
Main.java:134: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=i;
	              ^
Main.java:135: error: class, interface, or enum expected
}
^
Main.java:140: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=n-i-1;
	^
Main.java:140: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=n-i-1;
	         ^
Main.java:140: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=n-i-1;
	              ^
Main.java:141: error: class, interface, or enum expected
}
^
Main.java:147: error: class, interface, or enum expected
	for (i=0; i<n; i++) printf("%d ", d[i]);
	^
Main.java:147: error: class, interface, or enum expected
	for (i=0; i<n; i++) printf("%d ", d[i]);
	          ^
Main.java:147: error: class, interface, or enum expected
	for (i=0; i<n; i++) printf("%d ", d[i]);
	               ^
Main.java:148: error: class, interface, or enum expected
	printf("\n");
	^
Main.java:149: error: class, interface, or enum expected
}
^
71 errors
stdout
Standard output is empty