윤성우 열혈강의 C 정리

[ C 열혈강의 ] 11장 연습문제 : 1차원 배열

어린왕자1234 2022. 6. 22. 01:24
// [ 문제11 - 1:1차원 배열의 활용 ]  5개의 정수를 입력 받아 최대값, 최소값, 합을 출력


#include <stdio.h>


int main(void)
{
	int arr[5];
	int i;
	int max, min, sum;

	for (i = 0; i < 5; i++)
	{
		printf("정수 입력[%d]:", i+1);
		scanf_s("%d", &arr[i]);

	}


	i = 1;
	max = min = sum=arr[0];
	while (i < 5)
	{
		max = (max > arr[i]) ? max : arr[i];
		min = (min < arr[i]) ? min : arr[i];
		sum += arr[i];
		i++;
	}

	printf("\n");
	printf("최대값 : %d\n", max);
	printf("최소값 : %d\n", min);
	printf("합  계 : %d\n", sum);

	return 0;
}

// [ 문제11 - 1:1차원 배열의 활용 ]  [문제2] "Good time" 으로 문자배열 초기화 및 출력
/*
	char str[] = "Good time";

	printf("%s", str);
*/



#include <stdio.h>


int main(void)
{
	char str[] = { 'G','o','o','d',' ','t','i','m','e' ,'\0'};
	int len = sizeof(str) / sizeof(char);

	int i = 0;

	while (str[i] != '\0')
	{
		printf("%c", str[i]); 
		i++;
	}
		

	return 0;


}

// [ 문제11 - 2:배열기반의 문자열 표현 ]  [문제1] 영단어 1개 입력  / 단어의 문자수 출력


#include <stdio.h>


int main(void)
{
	char str[100];
	int i;

	printf("영단어 입력 :");
	scanf_s("%s", str,100);

	for (i=0;str[i] != 0; i++)
	{
		;
	}
	printf("[ %s ] 의 문자 수 : %d", str, i);		

	return 0;

}

// [ 문제11 - 2:배열기반의 문자열 표현 ]  [문제2] 영단어 1개 입력  / 좌우회전 후 반환

#include <stdio.h>

int StrLen(char* str);
void StrTrans(char* voca);


int main(void)
{
	char str[100];

	printf("영단어 입력 :");
	scanf_s("%s", str,100);

	StrTrans(str);

	return 0;

}

// 입력 문자열 수 반환 함수
int StrLen(char* str)
{
	int i=0;

	while (str[i] != 0)
		i++;

	return i;
}

// 문자열 좌우 전환 함수
void StrTrans(char* str)
{
	int i;
	int strLen;
	char temp;

	strLen = StrLen(str);
	for (i = 0; i < strLen / 2; i++)
	{
		if (str[i] != str[(strLen - 1) - i])
		{
			temp = str[i];
			str[i] = str[(strLen - 1) - i];
			str[(strLen - 1) - i] = temp;
		}
	}
	printf("문자열 좌우 전환 결과 : %s", str);

}
// [ 문제11 - 2:배열기반의 문자열 표현 ]  [문제3] 아스키값 최대 문자 출력

#include <stdio.h>

int StrLen(char* str);
char MaxChar(char* str);


int main(void)
{
	char str[100];

	printf("영단어 입력 :");
	scanf_s("%s", str,100);

	printf("최대 문자 : %c",MaxChar(str));

	return 0;

}

// 입력 문자열 수 반환
int StrLen(char* str)
{
	int i=0;

	while (str[i] != 0)
		i++;

	return i;
}

// 아스키값 최대 문자 출력
char MaxChar(char* str)
{
	int i;
	int strLen;
	char maxChar='\0';

	strLen = StrLen(str);

	for (i = 0; i < strLen; i++)
	{
		if (str[i] > maxChar)
			maxChar = str[i];

	}
	return maxChar;

}