2017-11-06 10 views
0

이것은 제 학교 과제입니다.두 개의 배열을 소수로 사용

문제 설명 :.

"는 1부터 100까지 소수를 출력하는 프로그램 작성

(A 프라임 정수 만 1 단독으로 균등 분할 될 수있는 임의의 정수)

요구 사항 : 배열을 사용하여 1에서 100까지의 숫자를 취하고 다른 배열은 소수를 사용하십시오. "

#include <stdio.h> 
int main() 
{ 
    int x[100], a[100]; 
    int y, z; 
    printf("here is an array going 1-100 :D\n"); 
    for (y=2; y<=100; y++){ 
      x[y]=y; 
      printf("\n%d\n", x[y]); 
      for (z=2; z<=y; z++){ 
       a[z]=z; 
       if (a[z]%z==0){ 
        break; 
       } 
      } 
      if (z==a[z]){ 
       printf("\n%d is a prime number\n", a[z]); 
      } 
     } 

    return 0; 
} 

내가 조금이 난처한 상황에 빠진 봤는데 :

여기 내 코드입니다. 나는 보통 나의 문제를 해결하는 질문을 봤다. 그러나 나는 내가 가깝다고 느낍니다. 제 두 번째 배열에 약간의 문제가 있다고 생각합니다.

친절하게 안내해드립니다. 다음과 같이

+1

'의 X [Y] = Y를,':이 100' – BLUEPIXY

+0

당신이 샘플을 제공 할 수 y를 =='경우 범위를 벗어날 오류 발생 출력, 또는 오류 등? – roelofs

+0

'a [z] = z; if (a [z] % z == 0) { break; }'항상 실행됩니다. 그래서'z == a [z]'는 항상 참입니다. (그리고 항상'2는 소수입니다') – BLUEPIXY

답변

-1
#include <stdio.h> 
int main() 
{ 
    int x[100], a[100]; //just declaring two arrays, although a[] has 100 elements i wont use them all 
    int y, z;//these are for the counters that will be used in the for loop 
    printf("here is an array going 1-100 :D\n"); 
    for (y=2; y<=100; y++){ 
      x[y]=y;//this will set the array to 1-100 
      printf("\n%d\n", x[y]);//prints out said array 
     for (z=2; z<=y; z++){ 

     if (y%z==0){//prime number test 
      a[z]=z;//setting second array equal to prime number after it passes test 
       break; 
     } 
     } 
         if (y==z){ 
       printf("\n%d is a prime number\n", a[z]); 
      } 
     } 

    return 0; 
} 
+1

'x'와'a'라는 이름이 자명하지 않기 때문에 답을 설명해야합니다. –

+0

죄송하지만, 방금 업데이트했습니다. – matt213

+1

코드를 올바르게 형식을 지정하면 올바르게 읽을 수 있습니다. –

0

은 정답을 찾아보세요 -

#include <stdio.h> 
int main() 
{ 
    int x[100], a[100]; 
    int y,z; 
    z=0; 
    x[0]=1; 
    printf("here is an array going 1-100 :D\n"); 
    for (y=2; y<=100; y++){ 
      x[y-1]=y; 
      printf("\n%d\n", x[y-1]); 
      for (z=2; z<=y/2; z++){ 
       if (a[y-1]%z==0){ 
        break; 
       } 
      } 
      if (z>y/2){ 
       printf("\n%d is a prime number\n", x[y-1]); 
       a[z++]=x[y-1]; 
      } 
     } 

    return 0; 
}