티스토리 툴바


독학/C언어 연습문제 | Posted by Sugarone [석원] 2010/04/06 16:41

연습문제 9-2

1. 곱셈 기능을 지니는 함수를 하나 구현하고 main 함수에서 이를 호출하는 형태로 프로그램을 구성하자. main 함수에서는 사용자로부터 두 개의 숫자를 입력받아서 곱셈 결과를 출력해줘야한다. 이러한 작업은 사용자가 0을 두개 입력할 때 까지 계속 되야한다. 그리고 프로그램이 종료되면 연산을 몇번 하였는지도 출력해줘야한다.

예:
두개의 숫자 입력:1 3
연산결과:3
두개의 숫자 입력:3 2
연산결과:6
두개의 숫자 입력:0 0
총 2번 연산하였습니다.

#include <stdio.h>

int mul(int a, int b);

int main (void)
{
 int num1=1, num2=1;
 int i;

 for(i=0 ; num1!=0 || num2!=0 ; i++)
 {
  printf("두개의 숫자 입력 : ");
  scanf("%d %d",&num1,&num2);
  printf("연산결과 : %d\n",mul(num1,num2));
 };
 printf("총 %d번 연산하였습니다.",i-1);

 return 0;
}

int mul(int a,int b)
{
 return a*b;
}
//되긴 되는데 배운 내용은 전역변수.
  전역변수에 count 를 사용하여 몇번 계산했는지 출력하는 방식으로 다시 만들어 보기로 했다.
  ...........
  했는데 실수로 지웠다..



2. 저금통 기능을 지니는 함수를 구현하자. 이 함수는 호출 시 전달되는 인자 값을 저금통처럼 누적시킨다. 그리고 누적된 금액을 출력해준다. -1이 입력될 때까지 계속해서 진행하도록 main 함수를 구성하자. 단 한가지 제한 사항을 두겠다. 이 프로그램에서는 전역 변수를 사용하지 않고, static 지역 변수를 사용하라.
예:
저금할 금액 :100
현재까지의 입금액 100원
저금할 금액:200
현재~:300
저금~:300
현~:600
저금:-1
입금 완료
#include <stdio.h>

int save(int money);

int main (void)
{
 int money;
 while(1)
 {
  printf("저금할 금액 : ");
  scanf("%d",&money);
  if(money==-1)
   break;
  printf("현재까지의 입금액 : %d원\n",save(money));
  
 }
 printf("입금 완료\n");
}

int save(int money)
{
 static int all=0;
 all+=money;
 return all;
}

TRACKBACK http://snowcatera.tistory.com/trackback/25 관련글 쓰기

댓글을 달아 주세요

독학/C언어 연습문제 | Posted by Sugarone [석원] 2010/04/05 16:27

연습문제 9-1

1. 세 개의 정수를 입력받아서 그 중 가장 큰 수를 반환하는 함수와 가장 작은 수를 반환하는 함수를 만들어 보자. 그리고 이 함수들을 이용하는 적절한 main 함수도 구현해 보자.

#include <stdio.h>

int Large(int a,int b,int c);
int Small(int a,int b,int c);

int main (void)
{
 int a,b,c;

 printf("세 개의 숫자를 입력하세요");
 scanf("%d %d %d",&a,&b,&c);
 printf("가장 큰 숫자는:%d",Large(a,b,c)); 
 printf("가장 작은 숫자는:%d",Small(a,b,c));

 return 0;
}
int Large(int a,int b,int c)
{
 int large, large2;

 large2=(a>b)? a:b;
 large=(large2>c)? large2:c;

 return large;
}
int Small(int a, int b, int c)
{
 int small, small2;

 small2=(a<b)? a:b;
 small=(small2<c)? small2:c;

 return small;
}


2. 섭씨 온도를 입력하면 화씨 온도로 변환하는 Fahrenheit라는 이름의 함수와 그 분대로 화씨 온도를 섭씨 온도로 변환하는 Celsius 함수를 정의하고 이에 적절한 main 함수도 구현해보자. 섭씨와 화씨 온도 간의 변환 공식은 다음과 같다.
F=1.8*C+32
실행 예:
섭씨 입력1, 화씨입력 2: 1(사용자입력)
섭씨입력:12.3(사용자입력)
변환된 화씨:54.140000(출력결과)
#include <stdio.h>

double Fahrenheit(double cel);
double Celsius(double fah);

int main (void)
{
 int select;
 double cel, fah;
 printf("섭씨입력1, 화씨입력2 : ");
 scanf("%d",&select);
 
 switch (select)
 {
 case 1:
  printf("섭씨입력:");
  scanf("%lf",&cel);
  printf("변환된 화씨:%f",Fahrenheit(cel));
  Fahrenheit(cel);
  break;
 case 2:
  printf("화씨입력:");
  scanf("%lf",&fah);
  printf("변환된 섭씨:%f",Celsius(fah));
  break;
 default:
  printf("잘못입력하셨습니다");
 }

 return 0;
}

double Fahrenheit (double cel)
{
 double fah;
 fah=(1.8)*cel+32;
 return fah;
}
double Celsius (double fah)
{
 double cel;
 cel=(fah-32)/1.8;
 return cel;
}

3. 피보나치 수열을 출력하는 함수를 구현해 보자. 예로 사용자로부터 5라는 숫자를 입력받으면 0부터 시작해서 다섯개의 피보나치 수열을 출력해야 한다.

오답. 피보나치수열 갯수가 안맞는다. (반복문 하나당 두개씩 출력해서).. 나중에 고쳐야지
#include <stdio.h>

void pibo(int num);

int main (void)
{
 int num;
 printf("피보나치 수열 몇개를 나열할까요? : ");
 scanf("%d",&num);

 pibo(num);

 return 0;
}
void pibo(int num)
{
 int a=0, b=1;
 int i;

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

 for(i=0;i<num-2;i++) {
  a=a+b;
  b=a+b;
  printf("%d %d ",a,b);
 }
}

TRACKBACK http://snowcatera.tistory.com/trackback/24 관련글 쓰기

댓글을 달아 주세요

독학/C언어 연습문제 | Posted by Sugarone [석원] 2010/04/02 09:57

여기까지가..


그동안 씨언어 공부하면서 해놨던 범위다.
이제부터 올리는건 내가 푸는 속도랑 비슷할 꺼다.

블로그를 만든지는 1년 됬는데.
그동안 소홀.. 수준도 아니고
방치 해놨던게 블로그한테도, 나한테도 미안하다.

가끔이라도 들어올껄.

이제와서 방문자 수가 늘어나는 걸 원하는 것도 염치 없고

그냥
내 공간으로 만들어야겠다.

끄적끄적

TRACKBACK http://snowcatera.tistory.com/trackback/23 관련글 쓰기

댓글을 달아 주세요

<PREV 1 2 3 4 5 ... 8 NEXT>