2019-01-15
HW33
#pragma warning(disable : 4996)
#include <stdio.h>
unsigned char menu(unsigned char);
unsigned char openFan(unsigned char);
unsigned char offFan(unsigned char);
unsigned char reverseFan(unsigned char);
void displayFan(unsigned char);
void myflush();
int main() {
unsigned char data = 0;
while (1) {
data = menu(data);
if (data == 0) break;
displayFan(data);
}
return 0;
}
unsigned char menu(unsigned char data) {
int num;
while (1) {
printf("1. 환풍구 열기 / 2. 환풍구 닫기 / 3. 환풍구 전체 전환 / 4. 종료 : ");
scanf("%d", &num);
if (getchar() == '\n') {
switch (num) {
case 1: data = openFan(data); return data;
case 2: data = offFan(data); return data;
case 3: data= reverseFan(data); return data;
case 4: return 0;
default: printf("* 잘못된 입력입니다.\n\n"); continue;
}
}
printf("* 잘못된 입력입니다.\n\n");
myflush();
}
}
unsigned char openFan(unsigned char data) {
int num;
unsigned char compare = 1;
printf("-------------------------------------------------------\n\t\tFan 열기 작업 실행 화면\n-------------------------------------------------------\n");
while (1) {
printf("* OPEN할 FAN 를 입력하시오(1-8) : ");
scanf("%d", &num);
if (getchar() == '\n') {
if (num >= 1 && num <= 8) {
compare = compare << unsigned char(num - 1);
return (data | compare);
}
else {
printf("* 잘못된 입력입니다.\n\n");
continue;
}
}
printf("* 잘못된 입력입니다.\n\n");
myflush();
}
}
unsigned char offFan(unsigned char data) {
int num;
unsigned char compare = 1;
printf("-------------------------------------------------------\n\t\tFan 닫기 작업 실행 화면\n-------------------------------------------------------\n");
while (1) {
printf("* CLOSE할 FAN 를 입력하시오(1-8) : ");
scanf("%d", &num);
if (getchar() == '\n') {
if (num >= 1 && num <= 8) {
compare = compare << unsigned char(num - 1);
return data ^ compare;
}
else {
printf("* 잘못된 입력입니다.\n\n");
continue;
}
}
printf("* 잘못된 입력입니다.\n\n");
myflush();
}
}
unsigned char reverseFan(unsigned char data) {
printf("-------------------------------------------------------\n\t\tFan 전체 전환 작업 실행 화면\n-------------------------------------------------------\n");
printf("전체 FAN의 상태가 전환되었습니다. (ON, OFF 상태 뒤바뀜)\n");
return ~data;
}
void displayFan(unsigned char data) {
unsigned char compare = 0x80;
printf("-------------------------------------------------------\n");
for (int i = 8; i >= 1; i--) {
printf("%d번FAN\t", i);
}
printf("\n");
for (int i = 1; i <= 8;i++) {
if ((data & compare) >= 1) {
printf(" ON\t");
}
else printf(" OFF\t");
compare = compare >> unsigned char(1);
}
printf("\n");
printf("-------------------------------------------------------\n\n\n");
return;
}
void myflush() {
while (getchar() != '\n');
return;
}
HW43#pragma warning(disable : 4996)
#include <stdio.h>
#include <math.h>
int primeNumber(int);
void myflush();
int main() {
int num, res;
while (1) {
int count = 0;
printf("* 정수값 하나를 입력하시오 : ");
scanf("%d", &num);
if (getchar() == '\n') {
if (num > 0) {
for (int i = 1; i <= num; i++) {
res = primeNumber(i);
if (res == 1) {
printf("%5d", i);
count++;
if ((count % 5) == 0) {
printf("\n");
}
}
}
if ((count % 5) != 0) printf("\n");
printf("1~%d까지의 총 소수는 %d개 입니다.\n\n", num, count);
continue;
}
}
printf("* 잘못된 입력입니다.\n\n");
myflush();
}
return 0;
}
int primeNumber(int number) {
int num = int(sqrt(number));
if (number != 1) {
for (int i = 2; i <= num; i++) {
if (number % i == 0) {
return 0;
}
}
return 1;
}
else return 0;
}
void myflush() {
while (getchar() != '\n');
return;
}
Reference
この問題について(2019-01-15), 我々は、より多くの情報をここで見つけました https://velog.io/@hyeonu_chun/2019-01-15テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol