100제 [기초 - 산술연산] 1038~1046
- 정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자.
(단, 입력되는 정수는 -1073741824 ~ 1073741824 이다.)#include <stdio.h> main() { long x,y; scanf("%ld %ld",&x,&y); printf("%ld",x+y); return 0; }
처음에 int로 했는데 오류가 났음 그후에 long으로 자료형을 고치니까 됨
int와 long과 short의 차이는 다음에 C언어 문법에 올려야겠다.
- 정수 2개를 입력받아 합을 출력해보자.
단, 입력되는 정수는 -2147483648 ~ +2147483648 이다.#include <stdio.h> main() { long x,y; scanf("%ld %ld",&x,&y); printf("%ld",x+y); return 0; }
- 입력된 정수의 부호를 바꿔 출력해보자.
단, -2147483647 ~ +2147483647 범위의 정수가 입력된다.#include <stdio.h> main() { long x; scanf("%ld",&x); printf("%ld",-x); return 0; }
x를 받고 출력할때 x에 -를 넣어줌 아님 -1을 곱해줘도 무방
- 영문자 1개를 입력받아 그 다음 문자를 출력해보자.
영문자 'A'의 다음 문자는 'B'이고, 영문자 '0'의 다음 문자는 '1'이다.#include <stdio.h> main() { char c; scanf("%c",&c); printf("%c",++c); return 0; }
다음 문자를 출력하기위해서는 아스키코드를 1올려줘야함
c=c+1과 c+=1과 ++c는(적어도 이문제에서는)똑같음 나는 최대한 짧게적으려고 노력했다.
c++은 하면안된다! (후치증감연산자는 출력하고 더해주기 때문이다)
- 정수 2개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력해보자.
단, -2147483648 <= a <= b <= +2147483647, b는 0이 아니다.#include <stdio.h> main() { long a,b; scanf("%ld %ld",&a,&b); printf("%ld",a/b); return 0; }
이 문제에서는 대소비교는 없기떄문에 수월했다
문제를 풀때 지문을 제대로 안읽어서 a,b를 정수로 입력받아야하는데 double로 선언했다가 5번빠꾸먹었다.
- 정수 2개(a, b) 를 입력받아 a를 b로 나눈 나머지를 출력해보자.
단, 0 <= a, b <= +2147483647, b는 0이 아니다.#include <stdio.h> main() { unsigned int a,b; scanf("%d %d",&a,&b); printf("%d",a%b); return 0; }
a,b의 범위를 고려해 unsigned로 선언했다. 역시 대소비교가 없어서 쉽다
- 정수를 1개 입력받아 1만큼 더해 출력해보자.
단, -2147483648 ~ +2147483647 의 범위로 입력된다.
-주의
계산되고 난 후의 값의 범위(데이터형)에 주의한다.#include <stdio.h> main() { long x; scanf("%ld",&x); printf("%ld",++x); return 0; }
만약 short나 int로 x를 받았다면 오버플로우가 발생했을것이다.
- 정수 2개(a, b)를 입력받아 합, 차, 곱, 몫, 나머지, 나눈 값을 자동으로 계산해보자.
단 0 <= a, b <= 2147483647, b는 0이 아니다.#include <stdio.h> int main() { long a,b; scanf("%ld %ld\n",&a,&b); printf("%ld\n",a+b); printf("%ld\n",a-b); printf("%ld\n",a*b); printf("%ld\n",a/b); printf("%ld\n",a%b); printf("%.2lf\n",(float)a/(float)b); return 0; }
위에서 했던것들을 한꺼번에 모아놓았다. 문제를 잘읽고 소수점 밑자리만 조심하자.
- 정수 3개를 입력받아 합과 평균을 출력해보자.
단, -2147483648 ~ +2147483647#include <stdio.h> main() { long x,y,z; scanf("%d %d %d",&x,&y,&z); printf("%d\n",x+y+z); printf("%.1lf",(float)(x+y+z)/3); return 0; }
평균은 실수로 처리해줘야하는데, 변수앞에 (자료형)을 써주어서 형변환을 해준다.
보통 형변환은 작은형->큰형은 제한사항이 없는데, 큰형->작은형은 오류가 날 수 있다.
Author And Source
이 문제에 관하여(100제 [기초 - 산술연산] 1038~1046), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jychan99/CodeUp-C언어-기초-100제-기초-산술연산-10381046저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)