130809.5일차

|

#include <stdio.h>

#include <time.h>

#include <stdlib.h>


// 로또



#define LOT 45

#define BUN 6


void main()

{


int m[BUN] = { 0 };

int a, k, cnt;

printf("로또 생성 횟수 입력 : ");

scanf("%d", &cnt);

printf("\n");



srand( (unsigned) time (NULL) ); 

for ( k=0 ; k<cnt ; k++) {

for ( int i=0; i<BUN; i++) {

//중복 제외

int j=0;

m[i]=rand()%LOT+1;

while (1) {

if (j==i) break;

if ( m[j]==m[i] )  {

m[i]=rand()%LOT+1;

j=0; 

} else j++;

} // while

} // for


//선생님 답

//for( int i=0 ; i<SIZE ; i++) {

// m[i]=rand()%LOT+1;

// for( int j=0 ; j < i ; i++ ) {

// if ( m[i] == m[j] ) i--;

// }

//}


// SORTING

for ( int i=0 ; i<BUN-1 ; i++ ) {

for ( int j=i+1 ; j<BUN ; j++ ) {

if ( m[i] > m[j] ) {

a=m[i];

m[i]=m[j];

m[j]=a;

} // if

} // for

} // for


// 6개 숫자 프린트

for ( int i=0 ; i<BUN ; i++ ) printf("%d\t", m[i]);

printf("\n");


}


printf("\n\n");




// 다이아몬드 배열 만들기


#define SIZE 5

int i, j, count=0;

int flag=SIZE/2+1;

int f=0;

int arr;


//printf("배열의 크기를 입력하여 주십시오(only 홀수) : ");

//scanf("%d", &arr);

//

//printf("%d\n%d\n", arr, SIZE);


int diamond[SIZE][SIZE] = { 0 }; 



// 입력

for ( i=0 ; i<SIZE ; i++ ) {

if (flag!=f ) {

for ( j=SIZE/2-i ; j<=SIZE/2+i ; j++ ) diamond[i][j]=++count;  f++;

} else {

for ( j=i-SIZE/2 ; j<=SIZE+SIZE/2-i-1 ; j++ ) diamond[i][j]=++count; 

}

} // for



//선생님 답


//int a=SIZE/2, b=SIZE/2;


//for ( i=0 ; i<SIZE ; i++ ) {

// for ( j=a ; j<=b ; j++) {

// diamond[i][j]=++count;

// }

// if ( i < SIZE/2 ) {

// a--; b++;

// } else { 

// a++; b--;

// }

//}




//출력

for ( i=0 ; i<SIZE ; i++ ) {

for ( j=0 ; j<SIZE ; j++ ) {

printf("%d\t",diamond[i][j]);

}

printf("\n");

}

printf("\n\n");


}

저작자 표시 비영리 변경 금지
신고

'Study > C, C++' 카테고리의 다른 글

130813.7일차  (0) 2013.08.19
130812.6일차  (0) 2013.08.19
130809.5일차  (0) 2013.08.19
130808.4일차  (0) 2013.08.08
130807.3일차  (0) 2013.08.07
130806.2일차  (0) 2013.08.06
Trackback 0 And Comment 0

게임 리뷰 참고 블로그

|

http://blog.naver.com/spirod

저작자 표시 비영리 변경 금지
신고

'etc > Project' 카테고리의 다른 글

게임 리뷰 참고 블로그  (0) 2013.08.09
Trackback 0 And Comment 0

130808.4일차

|

#include <stdio.h>

#include <time.h>

#include <stdlib.h>



//윤년구하기


//                                              1900 2000 2012 2013

// 4년마다 윤년 1 1 1 0

// 100년마다 제외 0 0 1

// 400년마다 포함 0 1 0

// 평년 윤년 윤년 평년




/*

void main()

{

int a;

int b;

printf("기한 연도를 기입하십시오 : ");

scanf("%d",&b);

for (a=2014 ; a<=b; a++)

{

//a=i

//if (a%4==0)

//{

// if (a%100==0)

// {

// if (a%400==0)

// {

// printf("%d : 윤년\n",a);

// }

// else printf("%d : 평년\n",a);

// }

// else printf("%d : 윤년\n",a);

//}

//else printf("%d : 평년\n",a);


if (a%4==0)

if (a%100==0)

if (a%400==0)

printf("%d : 윤년\n",a);

else printf("%d : 평년\n",a);

else printf("%d : 윤년\n",a);

else printf("%d : 평년\n",a);


//선생님 답

// if ( a%4 == 0 && a%100 != 0 || a%400 == 0 ) 

// puts("윤년");

// else puts("평년")


}


}


*/






// for문 : 1 부터 100까지



/*

void main()

{

int i;

int cnt=0, sum=0; // 누적할 값은 초기값을 지정해주어야한다.


for (i=1; i<=100;i++)

{

//3의 배수가 아니면서 홀수인 수

if (i%3!=0 && i%2==1)

{

printf("i : %d\n",i);

cnt++;

sum+=i; // sum=sum+i

} //if

} //for


printf("count : %d\n",cnt);

printf("sum : %d\n",sum);


}//main


*/




// 랜덤 random ( 추가 헤더파일 필요 #include <stdlib.h> )

/*


#include <time.h>

#include <stdlib.h>


void main()

{

srand( (unsigned) time (NULL) ); // 음수 시간 없으므로 unsigned. time도 헤더파일 필요(time.h)

for ( int i=0; i<45; i++)

{

printf("%d\n", rand()%45+1 ); // 같은값이 나온다. 계속 변하는 시간을 가져다가 값을 준다.

}


}

*/







// WHILE 문


/*

void main ()

{


int i=0; // 초기조건

while (i<3) // 조건

{

printf("i : %d\n", i);

i++; // 증감값 ( 원하는 위치에 쓸 수 있다; 불편함; 증감값을 맨위에 두자)

}

}

*/



// WHILE 문으로 1~100까지 출력

// 짝수합 홀수합 전체합을 구한다.

// 2550         2500         5050



/*

void main()

{

int i=0;

int sum=0, sum_even=0, sum_odd=0;


while (i<100)

{

i++;

printf("i : %d\n", i );

sum+=i;

if (i%2==0) sum_even+=i;

else sum_odd+=i;

} // while

printf("sum_even : %d\n", sum_even );

printf("sum_odd : %d\n", sum_odd );

printf("sum : %d\n", sum );


} // main


*/





// DO ~ WHILE


/*

void main()

{

int i=0; // 초기값

do {

printf("i : %d\n", i);

i++; // 증감값

} while( i<3); // 조건(조건이 거짓이어도 처음값으로 한번은 돈다.)

// 출력이 while조건보다 위에 있기 때문에 출력 하고 끝낼지 말지 결정

}

*/




// 구구단 출력

/*

void main()

{

int dan;

do {

printf("단 입력 : ");

scanf("%d", &dan);

} while ( dan<2 || dan>9 );  // 참이면 반복문 돈다, 거짓이어야 반복문을 빠져나옴

// %c  로 들어오면 fflush 해줘야함

// for 문을 쓰면 "단 입력 부분은 두번 쓰게됨

// for문은 일단 받고 반복, do문은 넣으면서 반복.


//for ( ; dan<2 || dan>9 ; ) {

// printf(" 단 입력 : ");

// scanf("%d", &dan);

//}


  for ( int i=1 ; i<10 ; i++) {

printf("%d * %d = %d\n", dan, i, dan*i);

}

}


*/




// DO WHILE 예제

// 1+2+3+4+5+6+7+8+9+10=55


/*

void main() {


int i=0, sum=0;

do {

i++;

if (i<10) printf("%d + ",i);

else printf("%d = ",i);

sum+=i;

} while (i<10);

printf("%d\n",sum);

}

*/





//  BREAK CONTINUE 예제


/*

void main()

{

int i=0;

while ( 1 ) // 항상 1은 참이기 때문에 무한루프 돈다

// FOR 문은 반복문이 몇번 도는지 알때

// WHILE 문은 반복문이 몇번 도는지 모를때 쓰고 중간에 끝내준다.(break)

  {

i++;

if ( i>10 ) break; // break는 빠져나갈 자리가 없는데서 쓰면 에러남

// switch나 while에서 사용


if (i%2==1) continue; // continue : 반복문의 처음으로 돌아가라

printf("i : %d\n", i );

}

}


*/


// 예제 break


// 1부터 누적해 가다가 최초로 2000이 넘는 수와 합을 출력

// 63                                                               2016



/*

void main()

{

int a=0, sum=0;


while (1)

{

a++;

sum+=a;

if (sum>2000) break;

}


printf("%d %d", a, sum);


}

*/



// 다중 반복문


/*

void main()

{

int i, j;

for ( i=0 ; i<3 ; i+=2 ) // 0,2

{

for ( j=0 ; j<3 ; j++ ) // 0,1,2

{

printf("i : %d\t j: %d\n", i, j );

}

}

}

*/



// 구구단 세로로 출력


/*

void main()

{

int i, j;


for ( i =2 ; i<10 ; i++ ) {

printf("\n  %d 단\n", i);

for ( j=1 ; j<10 ; j++ ) {

printf("%d * %d = %d\n", i, j, i*j);

} //for

} //for


} //main


*/






/* 가로로 구구단 찍기

2단 3단 .... 9단

2*1=2 3*1=3 .... 9*1=9

2*2=4 

....

2*9=18 9*9=81

*/


/*

void main()

{

int i, j;


for ( i =2 ; i<10 ; i++ ) printf("%d 단\t", i);

printf("\n");


for ( j=1 ; j<10 ; j++ ) {

for ( i =2 ; i<10 ; i++ ) {

printf("%d*%d=%d\t", i, j, i*j);

} //for

printf("\n");

} //for


} //main

*/





// 행 열


/*

void main()

{

int i, j;

for ( i=0 ; i<5 ; i++ ) {

for ( j=0 ; j<5 ; j++ ) {

printf("(%d,%d)\t",i,j);

}

printf("\n");

}

}

*/




// 배열 ARRAY

// 같은 자료형의 모임

// 첨자는 0부터 시작

// 연속적인 메모리 할



/*

#define SIZE 3 // define 뒤에는 대문자, SIZE를 3이라는 숫자로 사용

#define P printf // 강려크 하다

void main()

{

//int m[3];

int m[3] = { 10, 20, 30};

// int m[] = { 10, 20, 30};  // 방개수 생략가능

printf("m[0] : %d\n", m[0]);

printf("m[1] : %d\n", m[1]);

printf("m[2] : %d\n", m[2]);


m[1]=50;

m[2]=40;

for ( int i=0 ; i<3 ; i++) printf("m[%d] : %d\n", i, m[i]);

for ( int i=2 ; i>=0 ; i--) printf("m[%d] : %d\n", i, m[i]);

// sizeof 로 배열의 크기를 알고 그 변수로 돌리자

for ( int i=0 ; i<sizeof(m)/sizeof(m[0]) ; i++) printf("m[%d] : %d\n", i, m[i]); 

// 한개의 배열크기로 전체 배열을 나눠주면 총 갯수가 나옴

// define을 이용해보자

for ( int i=0 ; i<SIZE ; i++) P("m[%d] : %d\n", i, m[i]);  // ★★★★★

}


*/










// 숙제 1  ★★★★★


// 다이아몬드 만들기





// 숙제 2 ★★★★★


// 랜덤으로 두 수 (1~100) 발생

// 덧셈 문제 출력

// 답을 입력

// 맞았으면 "정답" 출력 / 맞은 개수 한 개 증가 / + 10

// 틀렸으면 "오답" 출력 / 정답을 알려준다.

// 총 10 문제 출제

// 다 풀었으면 맞은 개수와 점수를 출력



// [ 1번 문제 ]  99 + 99 = : 

// 오답입니다 / 정답입니다

// 정답은 999입니다

// 맞은 개수 : 2개

// 점수 : 20점



// +@ 구구단 문제 ★★★





// 숙제 답안


void main()

{


// 숙제1


int i, j;

int k;


printf("다이아몬드의 크기를 입력하여 주십시오 : ");

scanf("%d",&k);


if (k%2==0) {  // 입력이 짝수

for ( i=0 ; i<k; i++ ) {

if (i<k/2) {

for ( j=0 ; j<k/2-i-1; j++ ) printf(" ");

for ( j=k/2-i ; j<=k/2+i+1 ; j++ ) printf("*");

printf("\n");

} else {

for ( j=0 ; j<i-k/2; j++ ) printf(" ");

for ( j=i-k/2 ; j<k+k/2-i ; j++ ) printf("*");

printf("\n");

} // else

} // for

} else {  // 입력이 홀수

for ( i=0 ; i<k; i++ ) {

if (i<k/2) {

for ( j=0 ; j<k/2-i; j++ ) printf(" ");

for ( j=k/2-i ; j<=k/2+i ; j++ ) printf("*");

printf("\n");

} else {

for ( j=0 ; j<i-k/2; j++ ) printf(" ");

for ( j=i-k/2 ; j<k+k/2-i ; j++ ) printf("*");

printf("\n");

} // else

} // for

} // else



// 숙제 2


int a, b, sum, mul, ans;

int cnt=0;


srand( (unsigned) time (NULL) );

printf("\n\n\n\n더하기 문제를 풀어봅시다\n\n");


for ( int i=1; i<=10; i++)

{

a=rand()%100+1;

b=rand()%100+1;

sum=a+b;

printf("[ %d번 문제 ] : %d + %d = ", i, a, b);

scanf("%d", &ans); 

if (ans==sum) {

printf("정답입니다\n\n");

cnt+=1;

} else {

printf("오답입니다\n정답은 %d 입니다\n\n",sum);

}

}

printf("\n\n맞은 개수 : %d 개\n점수 : %d 점\n\n\n\n\n\n", cnt, cnt*10);



printf("구구단을 풀어봅시다\n\n");

cnt=0;


for ( int i=1; i<10; i++)

{

a=rand()%8+2;

b=rand()%9+1;

mul=a*b;

printf("[ %d번 문제 ] : %d * %d = ", i, a, b);

scanf("%d", &ans); 

if (ans==mul) {

printf("정답입니다\n\n");

cnt+=1;

} else {

printf("오답입니다\n정답은 %d 입니다\n\n",mul);

}

}

printf("\n\n맞은 개수 : %d 개\n점수 : %d 점\n\n", cnt, cnt*10);






// 1칸짜리 다이아몬드 4분면 합친 코딩

for ( i=0 ; i<5 ; i++ ) {

for ( j=0 ; j<4-i ; j++ ) printf(" ");

for ( j=0 ; j<=i ; j++ ) printf("*");

for ( j=5-i ; j<=5 ; j++ ) printf("*");

printf("\n");

}


for ( i=0 ; i<5 ; i++ ) {

for ( j=0 ; j<i ; j++ ) printf(" ");

for ( j=1 ; j<=5-i ; j++ ) printf("*");

for ( j=i ; j<=4 ; j++ ) printf("*");

printf("\n");

}

printf("\n\n\n");

}


저작자 표시 비영리 변경 금지
신고

'Study > C, C++' 카테고리의 다른 글

130812.6일차  (0) 2013.08.19
130809.5일차  (0) 2013.08.19
130808.4일차  (0) 2013.08.08
130807.3일차  (0) 2013.08.07
130806.2일차  (0) 2013.08.06
130805.1일차  (0) 2013.08.05
Trackback 0 And Comment 0
prev | 1 | ··· | 5 | 6 | 7 | 8 | 9 | 10 | next