윤성우 열혈강의 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;
}