프로그래밍

 3198, 1/160 회원가입  로그인  
   노란토끼버니
   [C언어]평균수치 구하는 프로그램

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3048 [복사]


안녕하세요 만년 유치원생입니다
제가 평균수치 구하는 프로그램을 만들려고 하거든요
만약 7개의 score들의 평균값을 구하는 프로그램이 ↓ 잖아요
01 #include <stdio.h>
02
03 main()
04 {
05 int score[7];
06 int i, sum;
07 for (i=0, sum=0; i<7; i++) {
08 printf("input score %d ==> ", i+1)
09 scanf("%d", &score[i]);
10 sum += score[i];
11 }
12 printf("평균값 : %d\n", sum/i);
13 }

gcc로 컴파일해고 실행해도 오류도 안나고
근데 전 7개 score뿐만 아니라 n개의 score을 구하고 싶거든요(scanf로)
그러면 05항의 score[7]을 바뀌야할텐데
제가 프로그래밍한 ↓는 안되거든요

01 #include <stdio.h>
02
03 main()
04 {
05 printf("성적의수: ==> %d"); /*집어넘*/
06 scanf("%d",&n); /*바꿈*/
07 int score[n]; /*바꿈*/
08 int i, sum;
09 for (i=0, sum=0; i<n; i++) { /*바꿈*/
10 printf("input score %d ==> ", i+1)
11 scanf("%d", &score[i]);
12 sum += score[i];
13 }
14 printf("평균값 : %d\n", sum/i);
15 }
이 파일은 오류가 뜨거든요;;
어느 항이 문제인지 가르쳐 주세요
쉽게보도록 01,02처럼 항이름도 적어둠(아.. 힘들어라)
설마 scanf는 한 파일의 같이 못씀??

  Hit : 4200     Date : 2011/06/10 11:08



    
profreez 메모리 할당에 대해 배우셔야할듯 싶습니다.
07 int score[n]; /*바꿈*/ --> int * score = (int *)malloc(n * sizeof(int));
15 항에 위에 free(score); 를 추가 해보세요.

책중에서 메모리 할당과 해제(malloc 와 free) 부분을 공부하세요.
2011/06/11  
prosthetics 05 printf("성적의수: ==> %d"); /*집어넘*/
->외로운 %d
07 int score[n]; /*바꿈*/
->n변수가 없음.
->배열을 선언할 때 index에는 '상수'값만 들어올 수 있음(변수는 안됨)
10 printf("input score %d ==> ", i+1)
->세미콜론

profreez님의 답변처럼 정해지지 않은 수의 데이타를 처리할 때는
동적메모리 할당을 사용해야 합니다.
동적메모리 할당을 이해하려면, 포인터를 배우셔야 합니다.
2011/06/11  
노란토끼버니 profreez//
아.. 찾아봤더니 어렵네요...
전 천천히 기초부터 배우겟음
prosthetics//
제가 아직 부족한 부분이 많네요 나중에 열심히 공부해서 다시 만들어야지~
2011/06/11