문제
내가 작성한 코드
#include <stdio.h>
#define ARRAY_SIZE 16
int maxstr(char str[][16], int N)
{
int max_index = 0; //최댓값의 인덱스
int max = 0; //최댓값 길이
for(int i = 0; i<N; i++){
int len = 0;
//한글자씩 훑기
for(int j = 0; j<16; j++){
//공백이 아니면 len++ 다 읽었으면 break;
if(str[i][j]!=NULL){
len++;
}
else{
break;
}
}
//맨 처음 값이면
if(i == 0){
max = len; //얘 자체 == 최댓값
}
//그 외의 경우
else{
if(len >= max){ //길이가 max보다 크거나 같을 경우
max = len; //최댓값 갱신
max_index = i; //최댓값 인덱스 갱신
}
}
}
return max_index; //최댓값 인덱스 반환
}
int main()
{
int N;
scanf("%d", &N);
char str[N][16];
//입력 받기
for (int i = 0; i < N; i++)
{
scanf("%s", str[i]);
}
int index = maxstr(str, N); //함수 결과 저장
printf("%s\n", str[index]); //출력
}
'C언어 > 주차별 문제' 카테고리의 다른 글
[12주차] 동적 할당 기초 (0) | 2023.06.14 |
---|---|
[12주차] 배열의 최소값 모두 더하기(동적 할당) (0) | 2023.06.14 |
[11주차] 배열 원소 swap (0) | 2023.06.08 |
[11주차] 정방행렬의 덧셈 (0) | 2023.06.08 |
[11주차] 배열의 최소값 모두 더하기 (0) | 2023.06.08 |