본문 바로가기

카테고리 없음

c언어 과제 3주차 과제(수업시간)

 

//몸무게 소스

#include <stdio.h> // 전처리기 지시문; 표준 입출력 관련 함수를 사용하기 위해 필요한 헤더파일을 포함
#define SIZE 3 // 전체 요소 개수를 정의하는 매크로; 여기서는 3명의 사람이 있다는 것을 나타냄
typedef struct{ // 사용자 정의 구조체 선언; 개인의 정보를 저장하기 위한 구조체
char name[10]; // 이름을 저장하는 문자 배열
double w; // 체중을 저장하는 실수형 변수
} WEIGHT;
void swap(WEIGHT *, WEIGHT *); // 두 개의 WEIGHT 타입 변수의 값을 교환하는 함수의 프로토타입 선언
int main()
{
// WEIGHT 타입의 배열을 선언하고 초기화; 3명의 사람의 이름과 체중 정보를 저장
WEIGHT man[SIZE]={{"한개발",57.5}, {"엄청군",125.6}, {"갈비양",35.7}};
int i,j; // 반복문에서 사용될 인덱스 변수 선언
for(i=0;i<2;i++){ // 체중을 기준으로 내림차순 정렬하기 위한 외부 반복문
for(j=i+1;j<3;j++){ // 현재 요소와 다음 요소를 비교하기 위한 내부 반복문
if(man[i].w<man[j].w) { // 만약 현재 요소의 체중이 다음 요소의 체중보다 작다면
swap(&man[i],&man[j]); // 두 요소의 위치를 교환(call by address 방식 사용)
}
}
}
printf(" 이름 \t체중\n"); // 결과를 출력하기 위한 헤더 출력
for(i=0;i<3;i++){ // 정렬된 배열의 요소를 순회하며 이름과 체중 출력
printf(" %s %5.1f\n",man[i].name,man[i].w);
}
return 0; // 프로그램 정상 종료
}
// swap 함수 정의
void swap(WEIGHT *mani, WEIGHT *manj) // 포인터를 사용하여 구조체 변수의 주소를 매개변수로 받음
{
WEIGHT temp; // 임시 저장을 위한 WEIGHT 타입의 변수 temp 선언
temp=*mani; // 첫 번째 매개변수가 가리키는 변수의 값을 temp에 저장
*mani=*manj; // 두 번째 매개변수가 가리키는 변수의 값을 첫 번째 매개변수가 가리키는 변수에 저장
*manj=temp; // temp의 값을 두 번째 매개변수가 가리키는 변수에 저장하여 값 교환 완료
}

 

 

//내림차순에서 오름차순정리

 

///변수,매개변수,리턴값에 대한 설명

// 큰 프로그램 하나를 여러 개의 함수로 분할하여 구현하는 구조적 프로그래밍(structured programming) 방식의 기본.

 

 

///

#include <stdio.h>
int main(void) 
{

printf("김태윤");
return 0;
}

*return 0은 맨 마지막줄에 써야 코드가 실행*

///주사위게임 소스

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

int main() {
    char enter; // 사용자로부터 엔터 입력을 받기 위한 변수
    int dice; // 주사위 눈을 저장할 변수

    // 난수 생성의 기반 값 설정
    srand(time(NULL));

    printf("주사위 게임에 오신 것을 환영합니다! 게임을 시작하려면 엔터키를 누르세요.\n");
    printf("게임을 종료하고 싶으시다면, 엔터키를 누르기 전에 아무 키나 입력하세요.\n");

    // 사용자로부터 입력을 받아 엔터만 입력될 경우 계속해서 주사위를 던집니다.
    while (scanf("%c", &enter) && enter == '\n') {
        // 1부터 6까지의 난수 생성
        dice = rand() % 6 + 1;
        
        // 주사위 눈 출력
        printf("주사위: %d\n", dice);
        printf("계속하려면 엔터키를, 그만하려면 아무 키나 누른 후 엔터키를 누르세요.\n");
    }

    printf("게임이 종료되었습니다. 다시 뵙게 되길 바랍니다!\n");

    return 0;
}

이 코드는 다음과 같은 주요 부분들로 이루어져 있습니다:

  • #include 지시문: 프로그램에서 필요한 표준 입출력 함수들(printf, scanf)과 난수 생성 함수들(rand, srand)을 사용하기 위해 필요한 헤더 파일들을 포함시킵니다.
  • srand(time(NULL)): 난수 생성을 위한 seed 값을 현재 시간으로 설정하여 매번 실행할 때마다 다른 난수가 생성될 수 있게 합니다.
  • while (scanf("%c", &enter) && enter == '\n'): 사용자가 엔터키(\n)만 입력할 경우 계속해서 반복하여 주사위를 던지도록 하는 반복문입니다. 사용자가 엔터키 이외의 다른 키를 입력하면 게임이 종료됩니다.
  • dice = rand() % 6 + 1;: 1부터 6 사이의 난수를 생성하여 dice 변수에 저장합니다. rand() % 6은 0부터 5 사이의 값을 반환하므로, 여기에 1을 더해 1에서 6 사이의 값이 되도록 합니다.

이 예시는 C언어의 기본적인 입출력, 조건문, 반복문, 난수 생성 기능을 활용한 간단한 예시입니다. 실제 프로그램에서는 사용자의 입력 처리나 에러 처리를 보다 세심하게 다룰 수 있습니다.

/// 앞쪽을 주석처리할떄 backspace키 오른쪽인insert키를 눌러야함

///

///구두점 예시

///

*ctrl+k+c 주석처리

ctrl+k+u 주석처리 취소

ctrl+k+f 정렬

ctrl+a 전체선택*

/// 

printf("@") 여기서 밑에줄로 내리고 싶을떈 

역슬래쉬 후 씀, \안

녕 이런식. 역슬래쉬는 한글키보드에서 w달러모양임. \a는 소리가 나오게,\t는 중간에 6칸정도 공백이 생김.

/// 개념설명

///혼자 여러번 연습하기좋은 가장 기본적

/// 주어진 소스에서 구두점에 현광펜 하기

/// 마지막과제