Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions level1/p01_runningLetter/runningletter.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#define WIDE 110

int main(void){
char s[20];
int x=0;
int dir=1;
int i;

scanf("%s",s);
while(1){
system("cls");
for(i=0;i<=x;i++){
printf(" ");
}
puts(s);
x += dir;
if(x == WIDE-1)
dir=-1;
else if(x==0)
dir=1;
}

return 0;
}
26 changes: 26 additions & 0 deletions level1/p02_isPrime/isprime.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#include<stdio.h>
int main(void){
int x;
int i;
int cnt=0;
scanf("%d",&x);
if( x == 2){
cnt =1;
}
if(x == 1){
cnt =0;
}
for(i=2;i<x;i++){
if(x%i == 0){
cnt=0;
break;
}else
cnt=1;
}

if(cnt==1)
printf("yes\n");
else
printf("no\n");
return 0;
}
12 changes: 12 additions & 0 deletions level1/p03_Diophantus/Diophantus.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#include<stdio.h>
int main(void){
double x=1;
while(1){
if(x == x/6+x/12+x/7+5+x/2+4)
break;
x++;
}

printf("The age of Diophantus is %f\n",x-4.0);

}
22 changes: 22 additions & 0 deletions level1/p04_ narcissus/narcissus.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#include<stdio.h>
#include<math.h>
#define MAX 1000
#define MIN 100
#define third(c) pow(c,3)
int main(void){
int i;
int a,x,y,z;

for(i=100;i<1000;i++){
a=i/10;
z=i%10;
y=a%10;
x=i/100;
int t=third(x)+third(y)+third(z);

if(i == t )
printf("%d ",i);
}
printf("\n");
return 0;
}
38 changes: 38 additions & 0 deletions level1/p05_allPrimes/allprimes.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#include<stdio.h>
#include<time.h>
#define MAX 1000

int isprime(int a);

int main(void){
clock_t t1,t2;
t1= clock();
int i;
for(i=2;i<MAX;i++){
if(isprime(i) )
printf("%d ",i);
}
printf("\n");
t2=clock();
printf("0.0%ds\n",t2-t1);
return 0;
}

int isprime(int a){
int i;
int cnt=0;

for(i=2;i<a;i++){
if(a%i == 0){
cnt=0;
break;
}
else
cnt =1;
}
if(a == 1)
cnt=0;
if(a == 2)
cnt =1;
return cnt;
}
57 changes: 57 additions & 0 deletions level1/p06_Goldbach/Goldbach.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#include<stdio.h>
#define MAX 100

int isprime(int a);
int main(void){
int i;
int x=0;
int a[25]={0,};

for(i=1;i<MAX;i++){
if(isprime(i)){
a[x]=i;
x++;
}
}

int j=2;
int m,n;

for(j=2;j<=MAX;j+=2){
int cnt=0;
for(m=0;m<25;m++){
for(n=0;n<25;n++){
if(j == a[m]+a[n]){
cnt=1;
break;
}
}
if(cnt==1)
break;
}
if(cnt==0){
printf("false\n");
return 0;
}
}
printf("ture\n");
return 0;
}

int isprime(int a){
int i;
int cnt=0;

for(i=2;i<a;i++){
if(a%i == 0){
cnt =0;
break;
}

else
cnt =1;
}
if(a == 1 ||a == 2)
cnt =1;
return cnt;
}
29 changes: 29 additions & 0 deletions level1/p08_hanoi/hanoi.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#include<stdio.h>

void hanoi(int num,char start,char end,char temp);
void put(char a,char b);

int main(void){
int numOfdisk=0;
scanf("%d",&numOfdisk);

const char s = 'A', e = 'B' ,t = 'C';
hanoi(numOfdisk,s,e,t);

return 0;
}

void hanoi(int num,char start,char end,char temp){
if(num == 1){
put(start,end);
}
else{
hanoi(num-1,start,temp,end);
put(start,end);
hanoi(num-1,temp,end,start);
}
}

void put(char a,char b){
printf("Move %c to %c\n",a,b);
}
121 changes: 121 additions & 0 deletions level1/p09_maze/maze.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
#include<stdio.h>
#include<conio.h> //kbhit��ԭ��
#include<stdlib.h>
#define WIDE 15
#define LEN 17

struct COD{
int x;
int y;
};

char maze[WIDE][LEN];
void Initmap(void);
void BuildrBarrier(int st,int end,int row);
void BuildlBarrier(int st,int end,int line);//������ǽ����
void PlayerMove(int twd,struct COD* now);
int GetPlayerCommand(void);
void Judge(struct COD* now,struct COD* New);

int main(void){
struct COD* now;
struct COD loc={1,1,};
now = &loc;

Initmap();
while(now->y < 16){
system("cls");
int i,j;
for(i=0;i<WIDE;i++){
for(j=0;j<LEN;j++){
printf("%c",maze[i][j]);
}
printf("\n");
}
PlayerMove(GetPlayerCommand(),now);
}
printf("you win!\n");

return 0;
}

void BuildlBarrier(int st,int end,int line){
int i;
for(i=st;i<=end;i++){
maze[i][line]='#';
}
}

void BuildrBarrier(int st,int end,int row){
int i;
for(i=st;i<=end;i++){
maze[row][i]='#';
}
}

void Initmap(void){
int i,j;
for(i=0;i<WIDE;i++){
maze[i][0] = '#';
maze[0][i] = '#';
}
for(j=0;j<LEN;j++){
maze[j][LEN-1] = '#';
maze[WIDE-1][j] = '#';
} //���ɱ߽�ǽ
for(i=1;i<WIDE-1;i++){
for(j=1;j<LEN-1;j++){
maze[i][j]=' ';
}
}
BuildlBarrier(1,4,3);
BuildrBarrier(7,13,3);
BuildrBarrier(12,15,5);
BuildrBarrier(1,6,7);
BuildlBarrier(4,8,7);
BuildrBarrier(10,15,7);
BuildrBarrier(3,10,10);
BuildlBarrier(10,13,12);
BuildlBarrier(8,10,10);
BuildrBarrier(14,15,12);
maze[6][12]='#',maze[9][3]='#',maze[10][13]='#';//��ʼ���Թ���ͼ
maze[1][1]='o';
maze[13][16]=' ';
}

int GetPlayerCommand(void){
int c= -1;
char ch;
if(ch=getch()){
switch(ch){
case'd':case'D':c=0;break;
case's':case'S':c=1;break;
case'a':case'A':c=2;break;
case'w':case'W':c=3;break;
case 27:exit(0);
}
}
return c;
}

void Judge(struct COD* now,struct COD* New){
char temp;
if(maze[New->x][New->y] != '#'){
temp=maze[now->x][now->y];
maze[now->x][now->y]=maze[New->x][New->y];
maze[New->x][New->y]=temp;
*now= *New;
}
}

void PlayerMove(int twd,struct COD* now){
struct COD n =*now;
struct COD *New=&n;
switch(twd){
case -1: break;
case 0: n.y++;Judge(now,New);break;
case 1: n.x++;Judge(now,New);break;
case 2: n.y--;Judge(now,New);break;
case 3: n.x--;Judge(now,New);break;
}
}
Loading