2014-04-04 2 views
0

난수를 가진 2 차원 배열을 3x5로 채우려고 시도하는 초보자입니다. 화면에 고, 저 및 평균 값을 표시합니다. 배열을 화면에 인쇄 할 수 없습니다. 누군가 제발 도와 줄 수 있니?난수로 배열 채우기 및 화면에 인쇄

#include <stido.h> 
#include <math.h> 
#include <time.h> 

int main (void){ 
    int array [3][5]; 
    int practice_array; 
    int i, row, col; 

    srand(time(NULL)); 

    for (row = 0; row < 3; row +1){ 

     for (col = 0; col < 5; col +1){ 

     array[row][col] = (rand()%10000) + 1; 
     } 
    } 
    practice_array = array[row][col]; 
    printf("%d", array[row][col]); 
    return (0); 
} 
+4

당신을 'print' 명령을'row'와'col'을위한 루프 안에 넣어야합니다; 또는 먼저 배열을 계산하고 * 인쇄 한 다음 인쇄하려면 루프를 반복하여 인쇄하십시오. – usr2564301

+2

그리고'#include '이 존재하지 않습니다.'#include '입니다. – Biduleohm

+0

배열이 잘못 인쇄되고 있습니다. 누더기 추가가 중단되지 않습니다. 제발 도와주세요. – user3479702

답변

3

당신은 3 개 주요 문제를했습니다 :

1 Jongware 그의 의견에 말한다 것처럼 printf이 아닌 외부 루프 내부에 있어야한다.

2#include <stido.h>는 (이 경우에 우리가 일반적으로 row++ 또는 ++row 사용) row = row + 1, 또는 row += 1, 또는 row++, 또는 ++row을해야 #include <stdio.h>

3.row +1있어, 존재하지 않습니다. 물론 차 col


에 대해 동일한 작업을 수행해야합니다

을 수행합니다.practice_arrayi은 쓸모가 없습니다.

b.printf\n을 잊어 버린 것 같습니다.


나는 코드를 수정 + I는 최소, 최대, 평균 값 추가 :

#include <stdio.h> 
#include <math.h> 
#include <time.h> 

#define ROWS_NB 3 
#define COLS_NB 5 
#define MIN_VAL 1 
#define MAX_VAL 10000 

int main(void) 
{ 
    int array[ROWS_NB][COLS_NB]; 
    int row; 
    int col; 
    int val; 
    int min = MAX_VAL; 
    int max = MIN_VAL; 
    int avg = 0; 

    srand(time(NULL)); 

    for (row = 0; row < ROWS_NB; ++row) 
    { 
     for (col = 0; col < COLS_NB; ++col) 
     { 
      val = (rand() % (MAX_VAL - MIN_VAL)) + MIN_VAL; 
      if (val < min) 
       min = val; 
      else if (val > max) 
       max = val; 
      avg += val; 
      array[row][col] = val; 
      //printf("%d ", val);/* uncomment if you want to print the array */ 
     } 
     //printf("\n");/* uncomment if you want to print the array */ 
    } 
    avg /= ROWS_NB * COLS_NB; 
    printf("min: %d\nmax: %d\naverage: %d\n", min, max, avg); 
    return (0); 
} 
+0

+1 좋은 수정. 후속 조치 의견. 더 이상 'i'가 필요하지 않을 수도 있습니다. "\ n"은 모든 요소가 아닌 전체 행 뒤에 인쇄 된 경우 더 멋지게 보일 수 있습니다. 높음, 낮음 및 평균을 표시하고 계산하기위한 코드를 추가 할 수 있습니다. – Arun

+0

@Arun 네 말이 맞아. 고마워.;) – Biduleohm

1

그런 배열을 인쇄 할 수는 없습니다. 각 요소는 자체 요소로 인쇄해야합니다.

for (row = 0; row < 3; row++){ for (col = 0; col < 5; col++){ printf ("%d ", array[row][col]); } }

0

내가 당신을 위해 고정 된 코드의 여러 가지가 있습니다을.

포함 할 라이브러리는 COL 및 행의 값은 제대로 되고, 업데이트되지 않은 stdio.h 하고 printf 문은 루프에 가서는과 짧은대로 각 값을 인쇄해야

include <stdio.h> 
include <math.h> 
include <time.h> 

int main (void) 
{ 
    int array [3][5]; 
    int i, row, col; 

    srand(time(NULL)); 

    for (row = 0; row < 3; row++) 
    { 
     for (col = 0; col < 5; col++) 
     { 
      array[row][col] = (rand()%10000) + 1; 
      printf("%d ", array[row][col]); 
     } 
     printf("\n"); 
    } 
    return (0); 
}