C언어 코드

3 minute read

전화번호부

#include <stdio.h>
#include <stdlib.h>
#pragma warning (disable:4996)
#define ARRAYSIZE 100

typedef struct CPB {
	char name[ARRAYSIZE];
	char phoneNumber1[ARRAYSIZE];
	char phoneNumber2[ARRAYSIZE];
	char email[ARRAYSIZE];
} PBOOK;


void insert(PBOOK *p, int n)
{
	scanf("%s", p[n].name);
	scanf("%s", p[n].phoneNumber1);
	scanf("%s", p[n].phoneNumber2);
	scanf("%s", p[n].email);
	return;
}

int menu()
{
	int number;

	printf("\n--- 휴대전화번호--- \n");
	printf("1.전화번호 입력\n");
	printf("2.목록 출력\n");
	printf("3. 종료\n");
	printf("메뉴 : ");

	scanf("%d", &number);

	return number;
}


int main()
{
	struct CPB phone_book[ARRAYSIZE];
	
	FILE *file;

	int a = 0;
	int b=0;
	int num;
	int n = 0;

	for (; ; ) {

		switch (menu())
		{
		case 1:
			file = fopen("PhoneNumber.txt", "w");

			insert(phone_book, n);
			
			fprintf(file, "%s\n", phone_book[n].name);
			fprintf(file, "%s\n", phone_book[n].phoneNumber1);
			fprintf(file, "%s\n", phone_book[n].phoneNumber2);
			fprintf(file, "%s\n\n", phone_book[n].email);
			
			n++;

			fclose(file);			
			break;
		case 2:
			file = fopen("PhoneNumber.txt", "r");

			for (b = 0; b < n; b++) {
				
				fscanf(file, "%s\n", phone_book[b].name);
				fscanf(file, "%s\n", phone_book[b].phoneNumber1);
				fscanf(file, "%s\n", phone_book[b].phoneNumber2);
				fscanf(file, "%s\n\n", phone_book[b].email);

				printf("%s\n", phone_book[b].name);
				printf("%s\n", phone_book[b].phoneNumber1);
				printf("%s\n", phone_book[b].phoneNumber2);
				printf("%s\n", phone_book[b].email);
				}

			fclose(file);
			break;

		default:
			exit(1);
			break;
		}
	
	}

}

가위바위보

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#pragma warning (disable:4996)

struct wdl {
		int win;
		int lose;
		int	draw;
		int score;
};

#define ro 1
#define sc 2
#define pa 3
#define en 4

struct wdl WIN(struct wdl result);
struct wdl DRAW(struct wdl result);
struct wdl LOSE(struct wdl result);

int main() {
	int myRPS, comRPS, score = 0, end;
	srand(time(NULL));
	char name[10];

	struct wdl result= {0,0,0,0};

	printf("■■■■■  ■  \t■■■    ■      ■\t■  ■  \t■■■\t  ■  ■    ■\n");
	printf("\t■  ■        ■      ■  ■      ■■■■  ■        ■      ■  ■  ■■■■\n");
	printf("\t■  ■■      ■      ■  ■      ■    ■  ■■      ■      ■  ■  ■    ■");
	for (;;) {

		printf(".....................................................\n == 1. 바위 == \n == 2. 가위 == \n == 3.  보  ==\n == 4. 종료 ==\n.....................................................\n    입력:  ");
		scanf("%d", &myRPS);
		comRPS = rand() % 3 + 1;
		if (myRPS == comRPS) {
			result = DRAW(result);
		}
		else {
			switch (myRPS) {
			case ro:
				if (comRPS == sc) {
					result = WIN(result);
				}
				else {
					result = LOSE(result);
				}
				break;
			case sc:
				if (comRPS == pa) {
					result = WIN(result);
				}
				else {
					result = LOSE(result);
				}
				break;
			case pa:
				if (comRPS == ro) {
					result = WIN(result);
				}
				else {
					result = LOSE(result);
				}
				break;

			case en:

				printf("게임을 종료하시겠습니까? YES : 1, NO : 2\n");
				scanf("%d", &end);
				if (end == 1) {
					printf("점수 : %d \n 게이머 이름 : ", result.score);
					scanf("%s", name);
					printf("게임결과 승리 : %d, 무승부 : %d, 짐 : %d", result.win, result.draw, result.lose);
				}
				else if (end == 2) {
					continue;
				}
				else {
					continue;
				}
				exit(1);
			default:
				printf("제대로 된 숫자를 입력하시오\n");
			}
		}
	}
}

struct wdl WIN(struct wdl result) {
	printf("WIN!\n");
	result.score++;
	result.win++;
	return result;
}
struct wdl LOSE(struct wdl result) {
	printf("LOSE!\n");
	result.score = result.score -1;
	result.lose++;
	return result;
}
struct wdl DRAW(struct wdl result) {
	printf("DRAW!\n");
	result.draw++;
	return result;
}

핵맨 게임

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#pragma warning(disable:4996)

#define RED "\x1B[31m"
#define GRN "\x1B[32m"
#define YEL "\x1B[33m"
#define BLU "\x1B[34m"
#define MAG "\x1B[35m"
#define CYN "\x1B[36m"
#define WHT "\x1B[37m"
#define RESET "\x1B[0m"

void hangman(int a, int b, int c);

int main()
{
char list[26][100] = {
"animal",
"bear",
"cat",
"dog",
"elephant",
"fox",
"giraffe",
"hourse",
"iguana",
"jaguar",
"kangaroo",
"lion",
"mouse",
"nationalbird",
"octopus",
"panda",
"quetzal",
"rabbit",
"sheep",
"turtle",
"umbrellabird",
"valture",
"wolf",
"xiphias",
"yak",
"zebra"
};

int n=0, o=0, p=0, q=0, r=0, s=0, t=0, u=0, v=0, w=0, x=0, y=0, z=0; //변수들
int summon = 0; // 행맨 소환
char text; // 쓸 단어
char word[100]; // 써야 할 단어
char hint[100]; // 힌트
char result[26]; // 맞춘 단어

srand(time(NULL)); // 문장 정하기 1
int num = rand() % 26; // 문장 정하기 2
strcpy(word, list[num]); // 문장 정하기 3

int count = strlen(word); // 문장의 글자수

for (n = 0; n < count; n++) {
result[n] = '*';
}

for (n = 0; n < count; n++) {
hint[n] = result[n];
}

hint[count] = '\0';

for (;;) {

printf("문장 : %s\n", word);
printf("HINT : %s\n", hint);
printf("input char : \n");

//문장 맞추는 과정
fflush(stdin);
scanf(" %c", &text);

for (n = 0; n < count; n++) {
if (word[n] == text) {
result[n] = text;
hint[n] = result[n];
summon = 1;
}
}
if (summon == 0) {
hangman(x, y, z);
summon = 0;
}

}
return 0;
}

void hangman(int a, int b, int c) {
printf("┃-----------┃\n");
printf("            ┃\n");
printf("            ┃\n");
printf("            ┃\n");
printf("            ┃\n");
printf("            ┃\n");
printf("            ┃\n");
printf("            ┃\n");
}

Updated: