호랑사과

도전! 프로그래밍1 (p.248~250) 본문

작업실/열혈 C프로그래밍

도전! 프로그래밍1 (p.248~250)

호랑사과 2013. 9. 29. 16:25

도전1



#include <stdio.h>


int main()

{

int num;

printf("정수를 입력하시오 : ");

scanf("%d", &num);

printf("10진수 : %d, 16진수 : %x\n", num, num);


return 0;

}



도전2



#include <stdio.h>


int main()

{

int num1, num2, mult=1;

printf("두 정수를 입력하시오 : ");

scanf("%d %d", &num1, &num2);

if(num1<=num2)

{

for( ; num1<=num2; num1++)

{

for(mult=1; mult<=9; mult++)

printf("%d X %d = %d\n", num1, mult, num1*mult);

printf("\n");

}

}

else

{

for( ; num1>=num2; num2++)

{

for(mult=1; mult<=9; mult++)

printf("%d X %d = %d\n", num2, mult, num2*mult);

printf("\n");

}

}

return 0;

}



도전3



#include <stdio.h>


int main()

{

int num1, num2, GCD, EndGCD;

printf("두 개의 정수 입력 : ");

scanf("%d %d", &num1, &num2);

if(num1>num2)

{

for(GCD=1; GCD<=num2; GCD++)

{

if(num1%GCD==0 && num2%GCD==0)

EndGCD=GCD;

}

}

else

{

for(GCD=1; GCD<=num1; GCD++)

{

if(num1%GCD==0 && num2%GCD==0)

EndGCD=GCD;

}

}


printf("두 수의 최대공약수 : %d\n", EndGCD);


return 0;

}



도전4 (미해결)



#include <stdio.h>


int main()

{

int money=3500, cream=1, crab=1, cola=1;

printf("현재 당신이 소유하고 있는 금액 : %d\n", money);

money=money-1600;//DVD 한 편 값 제외

for( ; money>=cream*500; cream++)

{

money=money-cream*500;

for( ; money>=crab*700; crab++)

{

money=money-crab*700;

for( ; money>=cola; cola++)

{

money=money-cola*400;

if(money==0)

printf("크림빵 %d개, 새우깡 %d개, 콜라 %d개\n", cream, crab, cola);

}

}

}

printf("어떻게 구입하시겠습니까?\n");


return 0;

}



도전5 (미해결)



첫번째

#include <stdio.h>


int main()

{

int num=2, count, divisor=1;

for(count=1; count<=10; count++)

{

for( ; num!=divisor; num++)

{

for(divisor=1; num!=divisor; divisor++)

{

if(num%divisor==0)

{

if(num==divisor)

printf("%d ", num);

}

}

}

}

printf("\n");


return 0;

}


두번째

#include <stdio.h>


int main()

{

int num=2, count=1, k=2;

for(num=2; count<=10; count++)

{

for(k=2; k<num; k++)

{

if(num/k!=0)

{

printf("%d", num);

continue;

}

else

{

k=2;

num++;

}

}

printf("%d ", num);

num++;

}

printf("\n");


return 0;

}



도전6



#include <stdio.h>


int main()

{

int h=3600, m=60, s;

printf("초(second)입력 : ");

scanf("%d", &s);

h=s/h;

s=s-3600*h;

m=s/m;

s=s-60*m;

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


return 0;

}



도전7



#include <stdio.h>


int main()

{

int n, k, mult=1;

printf("상수 n 입력 : ");

scanf("%d", &n);

if(n==1)

printf("공식을 만족하는 k의 최댓값은 0\n");

else

{

for(k=1; mult<n; k++)

mult=mult*2;

printf("공식을 만족하는 k의 최대값은 %d\n", k-1);//k-1이 아닌 k를 하면 기대했던 값보다 1 더 크게 붙음

}


return 0;

}



도전8



#include <stdio.h>


int multiply (int n)

{

if(n==0)

return 1;

else

return 2*multiply(n-1);

}


int main()

{

int n;

printf("정수입력 : ");

scanf("%d", &n);

printf("2의 %d승은 : %d\n", n, multiply(n));

return 0;

}





어제 당직하사하면서 한글로 소스 쳐보고 오늘 사지방에서 바로 올려봅니다.


문제 4, 5는 좀 더 생각해야 풀릴 것 같아서 추후에 올바른 소스를 올려보겠습니다.


나머지 문제들도 처음에 실행 안되는 것들이 있었는데 몇 개만 수정했더니 잘 작동하였습니다.