ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ: 2์ฐจ ๋ฐฉ์ •์‹์˜ ๊ฐœ์ˆ˜ n๊ณผ ๊ฐ ๋ฐฉ์ •์‹์˜ ์ •์ˆ˜ ๊ณ„์ˆ˜ a, b, c๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฐฉ์ •์‹์˜ ํ•ด๋ฅผ ํŒ๋ณ„ํ•˜์—ฌ๋ผ.

์กฐ๊ฑด: ๋‹ค๋ฅด๋ฉด single, ์ค‘๊ทผ์ด๋ฉด double, ์‹ค๊ทผ์ด ์—†์œผ๋ฉด none ์ถœ๋ ฅ

 

์ฝ”๋“œ:

#include <stdio.h>
#include<string.h>

struct equation {
	int a; // 2์ฐจ ํ•ญ์˜ ์ •์ˆ˜ ๊ณ„์ˆ˜
	int b; // 1์ฐจ ํ•ญ์˜ ์ •์ˆ˜ ๊ณ„์ˆ˜
	int c; // ์ƒ์ˆ˜ ํ•ญ์˜ ์ •์ˆ˜
	char det[7]; // ํŒ๋ณ„๊ฒฐ๊ณผ
}; // 2์ฐจ ๋ฐฉ์ •์‹ ax2 + bx + c = 0

void root(struct equation* p);

int main() {
	struct equation eq[100];
	struct equation* p = &eq[100];

	int n;
	scanf("%d", &n);

	for (int i = 0; i < n; i++) {
		scanf("%d %d %d", &eq[i].a, &eq[i].b, &eq[i].c);
	}

	for (p = eq; p < eq + n; p++) {
		root(p);
	}

	for (p = eq; p < eq + n; p++) {
		printf("%d %d %d %s\n", p->a, p->b, p->c, p->det);
	}

	return 0;
}

void root(struct equation* p) {
	if (p->b * p->b - 4 * p->a * p->c > 0) {
		strcpy(p->det, "single");
	}
	else if (p->b * p->b - 4 * p->a * p->c == 0) {
		strcpy(p->det, "double");
	}
	else if (p->b * p->b - 4 * p->a * p->c < 0) {
		strcpy(p->det, "none");
	}
}

 

rootํ•จ์ˆ˜ ์•ˆ์—์„œ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ mainํ•จ์ˆ˜์—์„œ rootํ•จ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๊ฑด๋ฐ ์ด๋ถ€๋ถ„์—์„œ ์ข€ ํ—ค๋งธ๋‹ค.

rootํ•จ์ˆ˜์—์„œ det์— ๊ฐ’์„ ์ €์žฅํ•ด์„œ mainํ•จ์ˆ˜๋กœ ๋ณด๋‚ด์•ผํ•จ**

๋ฐ˜์‘ํ˜•