for문, if 문 질문드립니다.
안토니
질문 제목 :
3x10의 배열과 l값을 입력받은뒤 길이가 l 인 숫자열을 검출하는 문제입니다.
길이가 l인 숫자열중에 중복된것이 있으면 검출하고, 중복된 수열이 여러개라면 가장 많은 숫자열을 검출하는 것 입니다.
예제를 이용하자면,길이 입력받는 변수를 포인터 변수로 두고 for 문을 사용해서 첫번째 숫자 (21)이 배열내에 있는지 찾고 그다음 문자도 같은지 비교하면서 입력받은 문자길이 만큼 같으면 출력하는걸 생각했는데요. scanf로 배열이랑 l받는거 짜고나서는 진도가 나가질 않습니다. 그래서 이렇게조언이나 도움을 구하고자 해요 ㅜㅠ예제----------------------------------------
l = ? 3
21 33 52 93 20 11 42 52 32 43
11 34 52 63 64 63 76 24 31 63
10 33 52 63 46 21 33 52 11 53
--------------------------------------------
질문 내용 :
#include stdio.h
int main (void)
{
int arr[3][10];
int i,j,k,l;
int n=30;
int count[30]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int same=0;
int maxcount, maxindex;
int *p;
p=arr[0];
printf(l = ? );
scanf(%d, &l);
for(i=0;i3;i++){
for(j=0;j10;j++){
scanf(%2d,&arr[i][j]);
}
}
for(i = 0; i n - l - 1; i++) {
for(j = i + 1; j n - l; j++) {
same = 1;
for(k = 0; k l; k++) {
if(arr[i + k] != arr[j + k]) {
same = 0;
break;
}
}
if(same=0) {
count[i]++;
}
}
}
maxcount = 0;
maxindex = -1;
for(i = 0; i n; i++) {
if(maxcount count[i]) {
maxcount = count[i];
maxindex = i;
}
}
-
황소숨
문제가 이해가 안됩니다.
- 길이가 L 인 숫자열을 검출
숫자열은 무엇인가요?
배열은 3*10 으로 되어있는데 길이는 무엇인가요?
- 중복된 수열이 여러개라면 가장 많은 숫자열을 검출하는 것 입니다.
중복이란 동일하단 말인데 다른게 어떻게 구별되나요?
가장 많은에서 무엇이 많다는 것인가요?
- for 문을 사용해서 첫번째 숫자 (21)이 배열내에 있는지 찾고
입력받은 L은 사용하지 않고 배열의 첫번째 숫자를 이용하나요?