|
本帖最后由 Wudy 于 2012-5-20 10:31 编辑
进展有点慢。。
现已支持:
编译成字节码再虚拟机执行,一位数组,一级指针,浮点数,字符串常量,递归,
3个库函数:input(),output(),puts()
more...
下一步的工作:
多维数组,强大的库。
短时间内不会支持的:
++,--操作符,多级指针,函数指针,其他高级的内容
放几个已经完美测试的代码(windows平台)
1.八皇后问题- int C[8];
- int tot = 0;
- void search( int cur )
- {
- int i, j;
-
- if( cur == 8 )
- tot += 1;
- else
- {
- for(i = 0; i < 8; i += 1 )
- {
- int ok = 1;
- C[cur] = i;
- for( j = 0; j < cur; j += 1 )
- if( C[cur] == C[j] || cur - C[cur] == j - C[j] || cur + C[cur]
- == j + C[j] )
- {
- ok = 0;
- break;
- }
- if( ok )
- search( cur + 1 );
- }
- }
- }
- void main()
- {
- search( 0 );
- output( tot );
- }
复制代码 2.高精度阶乘- int f[100];
- void main()
- {
- int i, j, n;
-
- n = input();
- f[0] = 1;
- for( i = 2; i <= n; i += 1 )
- {
- int c = 0;
- for( j = 0; j < 100; j += 1 )
- {
- int s = f[j] * i + c;
- f[j] = s%10;
- c = s / 10;
- }
- }
-
- for( j = 100 - 1; j >= 0 && f[j] == 0; j -= 1 )
- ;
-
- for( i = j; i >= 0; i -= 1 )
- output( f );
- }
复制代码 3.合并排序- void merge_sort( int* A, int x, int y, int* T )
- {
- if( y-x > 1)
- {
- int m = x + (y-x)/2;
- int p = x, q = m, i = x;
- merge_sort( A, x, m, T );
- merge_sort( A, m, y, T );
- while( p < m || q < y )
- {
- if( q >= y || (p < m && A[p] <= A[q]) )
- {
- T = A[p];
- i += 1; p += 1;
- }
- else
- {
- T = A[q];
- i += 1; q += 1;
- }
- }
- for( i = x; i < y; i += 1 )
- A = T;
- }
- }
- void main()
- {
- int a[5];
- int temp[5];
- int i;
- for( i = 0; i < 5; i += 1 )
- a[i] = input();
- merge_sort( a, 0, 5, temp );
- for( i = 0; i < 5; i += 1 )
- output( a[i] );
- }
复制代码 4.hello world- void main()
- {
- puts( "Hello World!" );
- }
复制代码 要等更完整后再发布,还是先发布一个尝鲜版? |
|