write() 함수와 scanf()  If제어문으로 음수 양수 확인

오늘은 음수인지 양수인지 출력하는 코드를 적어봅니다.

변수 선언을 해줍니다. 캐릭터 변수 한개와, 입력 받는 정수형 변수 하나를 할당합니다.

그리고 간단하게 if 제어문을 활용하여  0보다 작으면 음수이니 'N'을 출력하고 반대는 'P' 양수를 의미하는 문자를 출력합니다.  간단한 코드입니다.

#include <stdio.h>
#include <unistd.h>

int main(void) {


	char is_negative;
  int n;

  scanf("%d",&n);

	if (n < 0)
	{
		is_negative = 'N';
		write(1, &is_negative, 1);
	}
	else
	{
		is_negative = 'P';
		write(1, &is_negative, 1);
	}
Posted by 뭔가느낌이
,

putchar() 함수로 Int 정수 출력해보기

putchar() 함수는 문자 하나를 출력하는 함수입니다. 따라서 정수값을 출력하려면 고민을 좀 해야 합니다. 

  #include <stdio.h> 

  int main(void) {
    int num;
    scanf("%d", &num);
    putchar(num); 

    return 0;
  }

위의 코드를 한 번 보세요. 간단한 코드입니다. num 변수에 숫자를 입력 받은 다음에 putchar() 함수로 출력합니다. 여기에 숫자를 넣으면 어떤 값을 출력할까요? ASCII 값에 대응한 문자가 출력하는 것을 볼 수 있습니다.

만약 1을 입력하면 어떤 값이 나올까요? 10진수 1에 해당하는 ASCII CODE 가 나옵니다. 65를 입력하면 대문자 'A'가 나옵니다. 

숫자를 넣어 보겠습니다. 10 미만 숫자를 입력합니다. 입력한 숫자 값을 출력하고 싶다면 48을 더해야 원하는 숫자가 나옵니다. ASCII 값 48이 문자 '0' 시작하는 위치이기 때문입니다. 

입력한 값 + 48, 

'0' ==48  ~ '9' ==57 

#include <stdio.h> 

int main(void) {
  int num;
  int nAsciiZero = 48;
  
  scanf("%d", &num);
  
  if( num>=0 && num <10)
	  putchar(num+nAsciiZero); 

  return 0;
}

위와 같이 작성하여, 숫자 0에서 9까지 입력하면 입력한 값을 그대로 출력할 수 있습니다. nAsciiZero에 48을 할당하였습니다. 변수명만 봐도 무엇을 의미하는지 알 수 있어서 정말 마음에 들엉.

하지만 10 이상 숫자는 출력할 수가 없어요. ASCII 값은 9까지만 표시할 수 있거든요. 10이상 문자는 조합해서 만들어야 해요.예를들어 숫자 11를 출력하려면 어떻게 하면 될까요. 문자 '1' 을 두개 연속해서 표시하면 11 처럼 보이는 것처럼 두 개의 문자를 붙여야 해요. 숫자가 아니고 문자이기 때문에 조합해서 만들어야 합니다. 

#include <stdio.h>

int  main(){

  int num,nb,temp=1;
  int nAsciiZero=48 ;
  
  scanf("%d",&num);

// 한 자릿수 양수 음수는 바로 출력하고 종료한다.
  if(num >=0 && num<=9){
      putchar(num+nAsciiZero);
      return 0;
  }
  else if(num<0 && num>-10){
    putchar('-');
    num *=-1;
    putchar(num+nAsciiZero);
    return 0;
  }
  
  nb = num;
  // temp를 활용하여 자릿수를 구한다. 
  while( nb/=10){
    temp*=10;
  }
  // 음수를 먼저 처리해주기 위해 조건문 충족시 '-' 문자 출력한다.
  // 그리고 원본을 양수로 변환한다.
  if(num<0) {
    putchar('-');
    num =num*-1;
  }
  nb=num;
  
  //가장 앞 자리부터 하나씩 출력한다.
  while( temp>1 ){
    nb/=temp;
    putchar(nb+nAsciiZero);
    nb = num%temp;
    temp/=10;
  }
  putchar(nb+nAsciiZero);

}

이렇게 하면 한 문자씩 출력을 할 수가 있어요. 뿌잉 뿌잉.

Posted by 뭔가느낌이
,

[Codestudy]Javascript_Return keyword 7/13 번역

/* 좀더 매끄러운 번역을 위한 조언을 기다립니다. 댓글로 남겨주시면 고맙겠습니다.

Return keyword
반환 키워드

Nice job! Now, when we call a function, we don't always want to just print stuff. Sometimes, we just want it to return a value. We can then use that value (ie. the output from the function) in other code. Let's learn about the return keyword, then we'll see how to use functions with an if / else statement in the next exercise!
좋아! 함수를 선언했을 때, 우리가 항상 그냥 출력되길 바라지는 않는다.때때로 우린 단지 값이 반환하길 바란다. 우리는 그러면 다른 코드의 값을 사용할 수 있다. (예를 들어,  함수의 출력) 키워드 반환에 대해서 배워보자. 그러면 다음 연습에서 우리는 if/else 구문 함수 사용 방법을 볼 수 있다.

The return keyword simply gives the  programmer back the value that comes out of the function. So the function runs, and when the return keyword is used, the function will immediately stop running and return the value.
반환키워드는 간편하게 함수에서 나오는 값을 프로그래머에게 돌려주는 것을 제공한다. 함수가 실행되고 키워드 반환이 사용되는 경우 함수는 즉시 실행을 중지하고 값을 반환한다.

Instructions
지침

In our example we have a function called timesTwo() that takes in a number and returns the number multiplied by two.
우리의 예에서 우리는 두 가지를 곱한 수를 다수 받아 반환 timesTwo (라는 기능)을 가지고있다.

01    On line 7, after the equals sign, call the function timesTwo with any parameter you want
01   7행 등호 표시 이후, 여러분이 원하는 매개변수와 함께 timesTwo 함수 호출 하세요.

02    Line 8 prints out newNumber. Notice how the value we return from timesTwo() is automatically assigned into newNumber.
8행 newNumber 출력합니다. 우리가 timesTwo ()에서 반환 값이 자동으로 newNumber에 할당하는 방법을 알 수 있습니다.

Hint
힌트

To call the function, we just use the name of the function. We then put in a value for the number parameter. eg. timesTwo(8);
함수를 호출하기 위해, 우린 단지 함수 이름을 사용합니다. 그런다음 숫자 매개변수 의 값에 넣습니다. 예를들어 timesTwo(8);


// Parameter is a number, and we do math with that parameter
var timesTwo = function(number) {
    return number * 2;
};

// Call timesTwo here!
var newNumber = timesTwo (8);
console.log(newNumber);

Posted by 뭔가느낌이
,