본문 바로가기
프로그래밍/c언어

열혈강의 c 10장 도전 프로그래밍 one

by -현's- 2011. 3. 30.
반응형
1. 10진수 정수를 입력 받아서 16진수로 출력하는 프로그램
#include<stdio.h>
int main()
{
 int a;
 printf("10진수 정수 입력\n");
 scanf("%d", &a);
 printf("16진수: %x\n", a);
 return 0;
}
 
2. 사용자로부터 2개의 숫자를 입력받아서 구구단을 출력하는 프로그램.예를들어 3,5를 입력하면 3단,4단,5단을 출력,2,4를 입력하면
2단,3단,4단을 출력해야한다. 입력순서는 상관없어야 한다
 

#include<stdio.h>
int gogodan(int a, int b);

int main()
{
 int a, b;
 printf("숫자입력\n");
 scanf("%d %d", &a, &b);
 gogodan(a, b);
 return 0;
}
 

int gogodan(int a, int b)
{
 int i, j;
 if(a>b)
  {
   int temp;
   temp=a;
   a=b;
   b=temp;
  
   for(i=a;i<b+1;i++)
   {
    printf("\n");
    for(j=1; j<10; j++)
     printf("%d ", i*j);
   }
  }
 else
 {
  for(i=a;i<b+1;i++)
  {
   printf("\n");
   for(j=1; j<10; j++)
    printf("%d ", i*j);
  }
 
return 0;
 }
}
 
 
3. 두개의 정수를 입력받아서 최대공약수(gcm)를 구하는 프로그램(유클리드 호제법)
#include<stdio.h>
void gcm(int a, int b);
 
int main()
{
 int a, b;
 printf("두개정수 입력\n");
 scanf("%d %d", &a, &b);
 gcm(a, b);
 
 return 0;
}

void gcm(int a, int b)
{
 int c=a-b;
 while(c!=0)
 {
  
  if(a<b)
  {
   c=b-a;
   b=a;
   a=c;
  }
  else
  {
   c=a-b;
   a=b;
   b=c;
  }
 }
 
 printf("%d\n", a);
}
 
4.
#include<stdio.h>
int main()
{
 int i, j, k;
 
 printf("현재 당신이 소유하고 있는 금액:3500원\n");
 for(i=1; i<6;i++)
 {
  for(j=1; j<5; j++)
  {
   for(k=1; k<7; k++)
   {
    if((500*i)+(700*j)+(400*k)==3500)
    {
     printf("크림빵(%d개), 새우깡 (%d봉지), 콜라(%d병)\n", i, j, k);
    }
   }
  }
 }
 
 printf("어떻게 구입하시겠습니까?\n");

 return 0;
}
 
 
5.
10개의 소수(prime number)를 출력하는 프로그램
#include<stdio.h>
int main()
{
 int c;
 int n=2;
 int cnt=0;
 while(cnt<10)
 {
  int i=2;
  c=n%i;
  while(c!=0)
  {
   i=i+1;
   c=n%i;
  }
  if(i==n)
  {
   printf("%d ", n);
   cnt=cnt+1;
  }
  n=n+1; 
 }
 return 0;

}
6. 사용자로부터 초를 입력받아 시,분,초의 형태로 출력하는 프로그램
#include<stdio.h>
int main()
{
 int a;
 int s, m, h;
 printf("초 입력: \n");
 scanf("%d", &a);
 
 h=(a-a%3600)/3600;
 m=((a-3600*h)-(a-3600*h)%60)/60;
 s=a-3600*h-60*m;

 printf("시:%d 분:%d 초:%d \n", h, m, s);
 return 0;
}
 

7. 사용자로부터 숫자 n을 입력받아 다음 공식이 성립하는 최대 k값을 계산해서 출력하는 프로그램
2^k<=n

#include<stdio.h>
int main()
{
 int n;
 int k=0;
 int a=1;
 
 printf("상수n입력: \n");
 scanf("%d", &n);
 while(a<=n)
 {
  k=k+1;
  a=a*2;
 }
 k=k-1;
 printf("공식을 만족하는 k: %d\n", k);
 
 return 0;
}
 
 

8. 2의 n승을 구하는 함수를 재귀적으로 구현해보자. 그리고 그에따른 적절한 main함수도 구현해 보자.

#include<stdio.h>

int main()
{
 int n;
 printf("정수 입력:\n");
 scanf("%d", &n);
 printf("2의 %d승은 %d\n", n, N(n));
 }
 

int N(int n)
{
 int i=0;
 static int a=1;
 if(i<n)
  a=a*2;
 else
  return a;
 N(n-1);

}
 
 
 
반응형

댓글