아하
생활

생활꿀팁

탈퇴한 사용자
탈퇴한 사용자

C+ 배열 질문입니다. . .

#include <iostream>
using namespace std;
void prime(int n);
#define ROW 3
#define COL 4
void prime(int n){
int i,k,j;
int p[13];
j=0;
int c[3][4];
for(i=2; i<=n; i++)
{
for(k=2; k<n; k++)
{
if(i%k==0)
break;
}
if(i==k){
p[j] = i;
j++;
}
}
int q=0;
for(int i=0; i<ROW; i++)
{
for(int k=0; k<COL; k++)
{
c[i][k]=p[q];
cout<<c[i][k]<<" ";
q++;
}
cout<<endl;
}

}
int main(){
int n;
cin>>n;
prime(n);
}

이코드는 소수로채워진 2차원 배열입니다.

실행은 잘되는데 의문점이있어요.

13같은 작은값이나 100같은 높은값을 입력하면

작은값을입력했을땐 -45343543 같은 값처럼 깨져서 나오고

큰값을 입력했을땐 p쪽배열에 공간이없는지 에러가 뜨는거같은데.

제가 원하는건 수를 입력했을때 그수까지의 소수만 배열에 출력하고 그뒤에 깨지는걸 출력안하고싶은데

어떻게하면 되나요?

1개의 답변이 있어요!