C/C++

c언어 사칙 연산 해보기

1
리턴값없는 경우 #include void add(int, int); void sub(int, int); void mul(int, int); void div(int, int); int main() { int i, j,choice; printf("사칙연산을 수행할 두 수를 입력하세요\n"); scanf("%d%d", ..

리턴값없는 경우

#include <stdio.h>
void add(int, int);
void sub(int, int);
void mul(int, int);
void div(int, int);

int main() {
	int i, j,choice;
	printf("사칙연산을 수행할 두 수를 입력하세요\n");
	scanf("%d%d", &i, &j);
	printf("어떤 연산을 수행하시겠습니까? 1)add, 2)sub, 3)mul, 4)div\n");
	scanf("%d", &choice);
	switch (choice) {
	case 1:
		add(i, j);
		break;
	case 2: 
		sub(i, j);
		break;
	case 3:
		mul(i, j);
		break;
	case 4:
		div(i, j);
		break;
	default:
		printf("error\n");
		break;
	}

	return 0;

}

void add(int a, int b) {
	printf("%d + %d = %d\n", a, b, a + b);
}
void sub(int a, int b) {
	printf("%d - %d = %d\n", a, b, a - b);
}
void mul(int a, int b) {
	printf("%d * %d = %d\n", a, b, a * b);
}
void div(int a, int b) {
	printf("%d / %d = %f\n", a, b, a /(float) b);
}

리턴값 있는 경우?

#include<stdio.h>

int add(int, int);
int sub(int, int);
int mul(int, int);
int div(int, float);

int main() {
	int i, j,choice;
	printf("두 수 입력\n");
	scanf(" %d%d", &i, &j);
	printf("골라바\n");
	scanf("%d", &choice);
	switch (choice)
	{
	case 1:
		add(i, j);
		printf("%d+%d=%d", i, j, i + j);
		break;
	case 2:
		sub(i, j);
		printf("%d-%d=%d", i, j, i - j);
		break;
	case 3:
		mul(i, j);
		printf("%d*%d=%d", i, j, i * j);
		break;
	case 4:
		div(i, j);
		printf("%d/%d=%d", i, j, i / j);
		break;
	default:
		printf("error\n");
		break;
	}
	return 0;
}

int add(int a, int b) {
		return a+b;
}

int sub(int a, int b) {

	
	return a-b;
}

int mul(int a, int b) {
		
	return a*b;
}

int div(int a,float b) {
	
	
	return a/b;
}

void를 int로 변경해서 쓰긴 했는데 이렇게 하는게 맞나요? 출력은 되긴하는데.. 이 둘의 차이가 어려워요 ㅠㅠㅠ

LZH 2022-06-28
LZH 님께서 2022-06-28에 C/C++에 올린 질문
1
 
윈비 2022-07-17
맞게 하신 것 같습니다. return을 쓰면 결과 값을 받아서 처리하는 것이고 void를 쓰면 결과 값 반환 없이 바로 연산을 수행하면 됩니다.

댓글

조회수 522
답글 0
URL