Programming/c
[๊ตฌ์กฐ์ฒด] ํ๋ณ์ ํ ๊ฒฐ๊ณผ ์ถ๋ ฅ
ํด๋์๊ทธ
2021. 1. 7. 00:07
๋ฐ์ํ
๋ฌธ์ : 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ํจ์๋ก ๋ณด๋ด์ผํจ**
๋ฐ์ํ