구구단 ¶
~cpp #include <stdio.h> #include <stdlib.h> int main() { int i, j; for ( i = 1 ; i < 10 ; i++ ){ for ( j = 2 ; j < 10 ; j++ )printf("%d*%d=%2d ", j, i, i*j ); printf("n"); } system("PAUSE"); return 0; }
당첨? ¶
~cpp /************************************************************************ * * * 로또복권 당첨돼는 번호가 나올때까지 무한 반복하는 프로그램입니다. * * 재미있을꺼 같아서... 만들어봤는데 -_- 재미없어요 [............] * * 가능성이 ㅡㅜ * * * ************************************************************************/ #include <stdio.h> #include <stdlib.h> void randem_x(int count); void randem_y(int count, int save); void winning_number(); void make_number(int k); const int max_position = 6; int randemsoo[2][6]; long g = 1; int main() { int count, save; srand((unsigned)time(NULL)); count = 1; printf("중복 횟수입력 : "); scanf("%d", &count); printf("n"); randem_x(count); save = 1; winning_number(); randem_y(count, save); return 0; } void make_number(int k){ int i, j, h; /*숫자를 만들고,*/ for ( i = 0 ; i < max_position ; i++ ) randemsoo[k][i] = rand()%(45); /*중복을 없앤다음에*/ while ( i <= max_position ){ for ( i = 0 ; i <= max_position ; i++ ) for ( j = i+1 ; j < max_position ; j++ ){ if( randemsoo[k][i] == randemsoo[k][j] ) { randemsoo[k][j] = rand()%(45); break; } } } /*오름차순으로 숫자를 정리*/ for ( i = 0 ; i < max_position ; i++ ) for (j = i+1 ; j < max_position ; j++){ if ( randemsoo[k][i] > randemsoo[k][j] ){ h = randemsoo[k][i]; randemsoo[k][i] = randemsoo[k][j]; randemsoo[k][j] = h; } } } void randem_x(int count){ int k; k = 0; make_number(k); } void randem_y(int count, int save){ int i, k; k = 1; while ( save <= count ){ make_number(k); printf("game %d : ",g); for ( i = 0 ; i < max_position ; i++ ) printf("%2d ", randemsoo[k][i]+1); printf("n"); for ( i = 0 ; i < max_position ; i++ ){ if (randemsoo[0][i] || randemsoo[1][i]) break; if ( i == max_position - 1 ) ++save; } ++g; } printf ("복권 %d개를 사서 당첨되었습니다.n", g-1 ); winning_number(); } void winning_number(){ int i; printf("당첨 숫자 : "); for ( i = 0 ; i < max_position ; i++ ) printf("%2d ", randemsoo[0][i]+1); printf("n"); system("PAUSE"); }
겨우...... 한번 당첨된.......
리팩토링이란 말이 있길래 코드를 한 번 봤어요. 배열 리팩토링이란 어느 부분을 말하고 있는지 잘 모르겠지만, 이전에 더 쉬운 리팩토링부터 해나가야 하지 않을까 싶어요. 이를테면 randem_x, randem_y같은 함수는 무슨 일을 하는가요? 하는 일이 너무 많지 않은지 의심해보세요. 코드가 중복되는 부분을 줄여나갈 수도 있겠죠. --Leonardong
나름대로 완성입니다아~~ T^T 자축 ㅋ
-충고 감사합니다아~~ ㅎㅎ 나름대로 나누어 봤는데 이게 제대로 인지는 모르겠군요 =_=; 중복 부분만 어떻게 손보면 인제 나름대로 완성입니다 ㅋㅋ
계산기 ¶
~cpp #include <stdio.h> #include <stdlib.h> int main() { int forward, backward, save; char operation; printf ("사칙연산 프로그램입니다.아직은 두개의 숫자만 계산이 가능합니다.n"); printf ("숫자는 최대 11자리까지 가능합니다.n"); printf ("계산 식을 입력하십시오 ex) 12+5n" ); printf ("-->"); scanf ("%d%c%d",&forward ,&operation ,&backward ); save = 0; switch(operation) { case '+': save = forward + backward; break; case '-': save = forward - backward; break; case '*': save = forward * backward; break; case '/': save = forward / backward; break; default : printf ("사칙연산만 입력하세요"); } printf ("답 : %dn",save); system("PAUSE"); return 0; }
로또 ¶
~cpp /**************************************************************** * * * 로또 복권 번호 자동생성기 프로그램입니다. * * 만든 날자 : 5월7일 * * 만든 이 : 정수민 * * 만든 목적 : 실습 * * * ****************************************************************/ #include <stdio.h> #include <stdlib.h> int main() { int count, save, randem[6], i, j; srand((unsigned)time(NULL)); printf("n== LOTTO RANDOM NUMBER GENERATOR ==nnEnter the game count : "); scanf("%d", &count); printf("n========================nn"); for ( save = 1; save <= count; save++) { printf("GAME %d : ", save); for ( i = 0 ; i < 6 ; i++ ) randem[i] = rand()%(45); /*중복돼는 숫자를 없앱니다.*/ for ( i = 0 ; i < 6 ; i++ ) { for ( j = i+1 ; j < 6 ; j++ ) while(randem[i] == randem[j]) randem[i] = rand()%(45); printf("%2d ", ++randem[i]); } printf("n"); } printf("n========================n"); system("PAUSE"); return 0; }
점수입력 ¶
~cpp /************************************************************ * * * 점수를 입렵받아 총점과 평균 순위를 매기는 프로그램입니다.* * 만든 이 : 정수민 * * 만든 날자 : 5월7일 * * 만든 목적 : 실습 * * * ************************************************************/ #include <stdio.h> #include <stdlib.h> int main() { int input_score, i, max, min, sum = 0, compare, *score; float agv, team; printf("과목수를 입력하세요 n --> "); scanf("%d", &input_score) ; score=(int*)malloc(sizeof(int)*input_score); /*점수를 입력하는 부분 입니다.*/ for( i = 0 ; i < input_score ; i++ ){ printf("Enter a number for score[%d] : ", i); scanf("%d", &score[i]); sum += score[i]; } printf("n[ The contents of score array ]n"); for( i = 0 ; i < input_score ; i++ ){ printf("%3d", score[i]); } /*점수의 총합과 평균, 최고점수,최소점수를 구하는 부분입니다.*/ team = sum; agv = (team / input_score); max = score[0]; min = score[0]; for( i = 0 ; i < input_score ; i++ ){ if (max < score[i]) max = score[i]; if (min > score[i]) min = score[i]; } printf ("n sum=%d, agv=%.1fnn max=%d, min=%dn",sum ,agv, max, min); /*순위를 매기는 부분입니다.*/ for( i = 0 ; i < input_score ; i++ ){ int j, k; /*동점일경우 들어갈 순위에서 높은 숫자로 순위를 매깁니다.*/ k=1; for( j = 0 ; j < input_score ; j++ ) if (score[i] < score[j]) k++; printf("nscore[%d] : %d, rank = %dn", i, score[i], k); } system("PAUSE"); return 0; }
홈페이지분류, ZeroPagers