본문 바로가기
프로그래밍/C_정보올림피아드 Language_Coder

CODE 518~525 연산자 - 자가진단1~

by Royal! 2020. 8. 31.
728x90
반응형

CODE 518

#include<stdio.h>

int main(void){

int a=0, b=0, c=0;
scanf("%d %d %d",&a,&b,&c);
printf("sum : %d\navg : %d",a+b+c,(a+b+c)/3);

return 0;
}

 

 

 

 

 CODE 519

#include<stdio.h>

int main(void){

int a=0, b=0;
scanf("%d %d",&a,&b); // 값을 입력 받은 후 i=i+100; j=j%10;을해서 출력해도 된다.
printf("%d %d",a+=100,b%=10);

return 0;
}

 

 

 

CODE 520

#include<stdio.h>

int main(void){

int a=0;
scanf("%d",&a);
printf("%d\n",a++); 

//처음하면 헷갈려 printf("출력받은 값은 %d입니다.",a); 찍어보고 

//printf("후치연산자값은 %d입니다.",++a); 한 번 찍어보면 이해 된다.
printf("%d",++a);

return 0;
}

 

CODE 521

#include<stdio.h>

int main(void){

int a=0, b=0;
scanf("%d %d",&a,&b);
printf("%d %d %d",a++, --b, (a++ * --b));

// printf("%d %d %d",a++, --b); 값을 넣으면 10 19가 뜨며 

위와 같이 3자리를 넣으면 11 18 190 뜬다.(근데 a++,b--,(a++*--b);하니까 정올 정답이 맞는데 이유는 모르겠다.

 

이유는? 

전치 연산자는 수식의 값이 증가된 값. 후치 연산자는 수식의 값이 변하지 않은 원래의 값이며, 수식에서 나중에 증가,감소 된다. ex) x++  =>  x=x+1과 같으며,  y-- => y=y-1과 같다.(현재 값을 먼저 수식에 사용하고 나중에 증가된다.)

                반면 , ++x , --y는 먼저 증가(감소) 하고 그 값이 수식에 사용된다.
return 0;
}

 

 

이렇게 해서 틀렸다. 

 

안 헷갈리게 

#include<stdio.h>

int main(void){

int a,b,c;

scanf("%d %d",&a,&b);

c= a++ * --b;

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

return 0;

쓰자

 

 

 

CODE 522

#include<stdio.h>

int main(void){

int a=0,b=0;

scanf("%d %d",&a,&b);
printf("%d\n%d",a==b,a!=b);

}

 

 

 

 

 

CODE 523

 

#include<stdio.h>

int main(void){

int a=0,b=0;

scanf("%d %d",&a,&b);
printf("%d > %d --- %d\n",a,b,(a>b));
printf("%d < %d --- %d\n",a,b,(a<b));
printf("%d >= %d --- %d\n",a,b,(a>=b));
printf("%d <= %d --- %d\n",a,b,(a<=b));

}

 

 

 

 

 

 

CODE 524

#include<stdio.h>

int main(void){

int a=0,b=0;

scanf("%d %d",&a,&b);
printf("%d %d",(a*b)>0,(a+b)>0);

}

 

또는 
#include "stdio.h"

int main(void)
{
    int a=0,b=0; 

    scanf("%d %d",&a,&b);
    printf("%d %d\n",(a&&b), (a||b));


    return 0;
}

 

 ||  : OR연산 두 항 중 하나라도 참이면 결과가 참이다.

&& :  AND 연산두 항 모두 참이어야 참이다. 하나라도 거짓이면 거짓이다.

 ! :  NOT 연산 X가 참이면 거짓 , X가 거짓이면 참. 항의 결과값을 반전시킨다고 보면된다.

 

 

 

 

CODE 525

#include "stdio.h"

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

    scanf("%d %d %d",&a,&b,&c);
    printf("%d %d\r\n",(a>b)||(a>c),(a==b)&&(a=c));


    return 0;
}

 

728x90
반응형