U E D R , A S I H C RSS

자료구족발보쌈/0527

저길 봐요! 도대체 저게 뭐죠?
심해어.jpg
[JPG image (27.78 KB)]

수압을 견디지 못하고 시체가 된 우리의 모습입니다


1. 참여자 명단


함장 장용운 11학번 출석
선원 천준현 15학번 출석
최지혁 출석
박인서 출석
이정재 출석
이원준 출석
조종현 출석
남헌 출석

2. 수업

2.1. 진행

1. 장소 : 6층 학회실
2. 시간 : 11시 ~ 13시

2.2. 내용

수심 500m. 구조체
  • 구조체, 포인터
  • 연결 리스트

보충. 메모리 동적 할당
  • 메모리 stack과 heap 구조
  • malloc과 free

3. 코드

3.1. 예제1


4. 숙제

1. 스터디 시간에 짠 소스 코드 업로드 하기




5. 숙제 제출

5.1. 천준현


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

struct a{
	int id;
	int score;
};
int main(void){
	struct a person[5];
	int i, j, a;
	for (i = 0; i <= 4; i++){
		printf("%d번 째 사람의 학번을 입력하세용\n", i + 1);
		scanf("%d", &person[i].id);
	}
	for (i = 0; i <= 4; i++){
		printf("%d번 째 사람의 성적을 입력하세용\n", i + 1);
		scanf("%d", &(person[i].score));
		}
	for (i = 0; i <= 4; i++){
		for (j = i + 1; j <= 4; j++){
			if (person[i].score < person[j].score){
				struct a b = person[i];
				person[i] = person[j];
				person[j] = b;
			}
		}
	}
	for (i = 0; i <= 4; i++){
		printf("%d등 id : %d, score : %d\n", i+1 , person[i].id, person[i].score);
	}
	return 0;
}

5.2. 최지혁


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

struct A
{
	int id;
	int score;
};

int main()
{
	struct A person[5];


	for (int i = 0; i < 5; i++)
	{
		printf("%d번째 학번을 적어주세요", i + 1);
		scanf("%d", &person[i].id); // 학번받기
	}


	for (int p =0; p < 5; p++)
	{
		printf("%d번째 학번의 점수를 적어주세요", p + 1);
		scanf("%d", &person[p].score); // 점수받기
	}


	int score[5] = {0,0,0,0,0};
	int id[5] = {0,0,0,0,0};
	score[0] = person[0].score;
	id[0] = person[0].id;

	for (int i = 1; i < 5; i++)
	{
	
		for (int j = 0; j < 5;j++ )
		{
			if (person[i].score > score[j])
			{
				for (int t = 3; t >= j; t--)
				{
					score[t + 1] = score[t];
					id[t + 1] = id[t];
				}
				score[j] = person[i].score;
				id[j] = person[i].id;
				goto here;
			}
			
		}
	here:;
		
	}
	for (int k = 0; k < 5; k++)
		printf("%d %d\n", id[k], score[k]);

	return 0;
}
(goto를 썼다는 게 걸리긴 하지만, 뭐. 동작은 하니깐요.....허허헛)

 



 

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

int main()
{
	int n;
	int* p;
	scanf("%d", &n);
	p = (int*)malloc(sizeof(int)*n);
	
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &p[i]);
	}

	for (int j = n - 1; j >= 0; j--)
	{
		printf("%d ", p[j]);
	}

	free(p);

	return 0;
}

 

5.3. 박인서

  • 구조체 연습

#include <stdio.h>
struct A{
	int id;
	int score;
};

int main(){
	int i,j,temp;
	struct A p[5];
	for(i=0;i<5;i++) scanf("%d",&p[i].id);
	for(i=0;i<5;i++) scanf("%d",&p[i].score);
	for(i=0;i<5;i++){
		for(j=i+1;j<5;j++){
			if(p[i].score<p[j].score){
				temp=p[i].score;
				p[i].score=p[j].score;
				p[j].score=temp;
				temp=p[i].id;
				p[i].id=p[j].id;
				p[j].id=temp;
			}
		}
	}
	for(i=0;i<5;i++) printf("학번 : %d, 점수 : %d\n",p[i].id,p[i].score);
	return 0;
}
  • malloc 실습

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

int main()
{
	int n,i;
	int * p;
	scanf("%d",&n);
	p=(int *) malloc(sizeof(int)*n);
	for(i=0;i<n;i++) scanf("%d",&p[i]);
	printf("\n");
	for(i=n-1;i>=0;i--) printf("%d\n",p[i]);
	free(p);
	return 0;
}

5.4. 이정재


5.5. 이원준

* 구조체 swap
#include<stdio.h>

struct A{
	int id;
	int score;
};

void main(){
	struct A person[5];
	printf("id를 입력받으시오.(5명)\n");
	for (int i = 0; i < 5; i++){
		scanf("%d", &person[i].id);
	}

	printf("score를 입력받으시오.(5명)\n");
	for (int i = 0; i < 5; i++){
		scanf("%d", &person[i].score);
	}
	
	for (int i = 0; i < 5; i++){
		for (int j = i + 1; j < 5; j++){
			if (person[i].score < person[j].score){
				struct A tmp = person[i];
				person[i] = person[j];
				person[j] = tmp;
			}
		}
	}
	for (int i = 0; i < 5; i++){
		printf("%d등.id: %d   score: %d\n", i+1 , person[i].id, person[i].score);
	}
}

* malloc 연습
#include<stdio.h>
#include<malloc.h>

void main(){
	int *p;
	int n;
	printf("몇개 입력할거임?\n");
	scanf("%d", &n);
	p = (int*)malloc(sizeof(int)*n);
	printf("니맴대로 입력하시오.\n");
	for (int i = 0;i < n; i++){
		scanf("%d", &p[i]);
	}
	for (int i = n - 1; i >= 0; i--){
		printf("%d\n", p[i]);
	}
}

5.6. 조종현


#include<stdio.h>
#include<stdlib.h>
int main(){
	int n;
	int* p;
	scanf("%d", &n);
	p = (int*)malloc(sizeof(int)*n);
	for (int i = 0; i < n; i++){
		scanf_s("%d", &p[i]);
	}
	for (int j = n; j > 0; j--){
		printf("%d ", p[j]);
	}
	free(p);
	return 0;
}

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:37
Processing time 0.0325 sec