컴프 과제 6

문제 1번

#define _CRT_SECURE_NO_WARNINGS    // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>

int perform(int* p1, int* p2, int* p3);

int main() {
	int a=0, b=0, c=0;
	printf("Enter three numbers :");
	scanf("%d %d %d", &a, &b, &c);
	printf("Before: a = %d, b = %d, c = %d\n", a, b, c);
	perform(&a, &b, &c);
	return 0;
}
int perform(int* p1, int* p2, int* p3) {
	int multi = 0 ;
	(*p1)++;
	multi = (*p2) * (*p3);
	(*p2) = (*p3);
	(*p3) = multi;
	printf("After: a = %d, b = %d, c = %d", *p1, *p2, *p3);
	return 0;
}

문제 2번

#define _CRT_SECURE_NO_WARNINGS    // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>

int compare(char* str1, char* str2);

int main(void) {
	char string1[80];
	char string2[80];
	int result = 0;
	printf("Enter two strings:");
	scanf("%s %s", string1, string2);
	result = compare(string1, string2);
	if (result) printf("%s and %s are equal", string1, string2);
	else printf("%s and %s are not equal", string1, string2);
	return 0;
}
int compare(char* str1, char* str2) {
	for (; *str1 == *str2; str1++, str2++) {
		if (*str1 == 0 && *str2 == 0) return 1;
	}
	return 0;
}

문제3

#define _CRT_SECURE_NO_WARNINGS    // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>

int strconcat(char* str1, char* str2);

int main() {
	char string1[80];
	char string2[80];
	printf("Enter two strings:");
	scanf("%s %s", string1, string2);
	strconcat(string1, string2);
	printf("%s", string1);
	return 0;
}

int strconcat(char* str1, char* str2) {
	while (*str1 != '\0') { str1++; }
	while (*str2 != '\0') {
		*str1 = *str2;
		str1++;
		str2++;
	}
	*str1 = '\0';
	return 0;
}

문제 4번

#define _CRT_SECURE_NO_WARNINGS    // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>

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 main(void) {
	int a = 0, b = 0;
	int (*func[3])(int, int) = { add, sub, mul };
	int op = 0;
	while (1) {
		printf("0. Addition\n1. Subtraction\n2. Multiplication\n3. End\n");
		printf("select the operation: ");
		scanf("%d", &op);
		if (op != 3) {
			printf("Enter two numbers: ");
			scanf("%d %d", &a, &b);
			if (op == 0) printf("%d + %d = %d\n", a, b, func[op](a, b));
			else if (op == 1) printf("%d - %d = %d\n", a, b, func[op](a, b));
			else  printf("%d * %d = %d\n", a, b, func[op](a, b));
		}
		else {
			break;
		}
	}
}

좋은 웹페이지 즐겨찾기