PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2004/12/30 18:32:36
Name 시즈플레어
Subject 비주얼 c++ 질문입니다.
얼마전에도 하나 올렸었는데..
또 막혔네요 ㅠ.ㅡ

몇개의 숫자를 쓸건지 입력받고
n개의 숫자를 입력하면 오름차순으로 정렬하는 프로그램인데요

n개가 아니라 10개 이런식으로 딱 정해서 하면 잘 되는데요..
10을 n으로 바꾸니까 에러가 자꾸 뜨네요

포인터를 쓰면 된다는데 교수님이 아직 안 배웠다고 포인터 쓰지 말라고 했구여..
#define 어쩌구 했던거 같은데.... 도무지 모르겠네요.

#include <stdio.h>

main()

{
        int i, j, n;
        float c, a[n];        
                
        printf("몇개의 숫자를 입력하시겠습니까?");
        scanf("%d", &n);

        for(i=0; i<n; i++)
        {
                scanf("%f", &a[i]);
        }
        
        for(i=0; i<n; i++)
        {
                for(j=i+1; j<n; j++)
                        {
                                if(a[i] > a[j])  
                                {
                                        c = a[i];
                                        a[i] = a[j];
                                        a[j] = c;
                                }
                        }
                printf("%f \n", a[i]);
        }
}

어떻게 고치면 좋을까요?
답변 부탁드립니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
정지연
04/12/30 19:18
수정 아이콘
일단 저런 형태로 선언은 못합니다. 어레이의 크기를 정할때는 고정된 숫자를 써야하는데 n 은 변수이기 때문에 쓸 수 없고요.. 포인터형으로 어레이 변수를 잡고, malloc 함수를 쓰면 되긴합니다.. 교수님께서 포인터를 쓰지 말라고 하셨으니.. 일단 제가 아는 한도내에서 말씀드리면요.

어레이 변수 a를 float *a; 로 잡습니다.

그리고 scanf를 써서 n을 입력받고 그 다음줄에,

a=(float *)malloc(sizeof(float)*n);

이렇게 해주면 a[n] 과 같은 효과를 냅니다.

그리고 프로그램 마지막 줄에
free(a);
를 추가해 주시고요..
시즈플레어
04/12/30 21:17
수정 아이콘
네... 그런데 malloc 함수도 안 배워서..
04/12/31 02:26
수정 아이콘
어레이의 크기를 그냥 충분히 크게 잡으면 됩니다. 1000개 ... 정도
손으로 입력하는 거니... 1000개 이상 입력할 리가 절대 없습니다.
그래도 부족하다 싶으면 10만개 정도로 잡으세요 .
포인터를 쓰지 않는다면, 방법은 static 하게 무조건 넉넉하게
메모리를 잡아주는 것밖에 없죠 .
나머지는 똑같은 방법으로 하면 됩니다



#include <stdio.h>
#define MAX_SIZE 1024

int size;
float array[MAX_SIZE];
main()

int i;
printf("몇개의 숫자를 입력하시겠습니까?");
scanf("%d", &size);
for( i = 0; i < size; i++) scanf("%f", &array[i]);

sort();


sort() 함수만 구현하면 되겠네요 : )
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
6226 작정하고 오는 8배럭 치즈 벙커링... 어떻게 해야할까요? [5] 나야NaYa1962 04/12/31 1962
6224 [긴급]김동수 해설위원 연락처를 구합니다. [10] 정 주지 마!2692 04/12/30 2692
6223 언어영역에 관해서... [6] ggMan1645 04/12/30 1645
6222 2004년 펼쳐진 온게임넷과 엠비씨게임의 게임 수. 잇힝1870 04/12/30 1870
6221 프라이드2004 남제(男際) 대진표 아시는분... [2] 문워크 프로부1557 04/12/30 1557
6220 예비고 1인데요. 수학에 관한 질문하나. [9] 제갈공명토스1580 04/12/30 1580
6219 비주얼 c++ 질문입니다. [3] 시즈플레어1458 04/12/30 1458
6217 예비고1 인데요... [2] StoneCold추종자1635 04/12/30 1635
6216 스타중 화면 깨지는 현상 나이트클럽1893 04/12/30 1893
6215 스타크래프트 오류에 관해서 [2] 스텝좀밟앗니1592 04/12/30 1592
6213 게임 도중 중간 중간에 잡음이 납니다. [1] hi!템플러1592 04/12/30 1592
6211 익스프롤러 오류가 너무 많이 일어나요... [2] Naraboyz1511 04/12/29 1511
6210 서울에서 재미있게 놀 만한 곳이 없나요? [6] 나를찾아서2194 04/12/29 2194
6209 베넷에서 말입니다. [1] RushGo~★1940 04/12/29 1940
6208 영어 단어/숙어장 추천 부탁드립니다. [15] BluSkai3130 04/12/29 3130
6207 IAUDIO U2 사용자님들께 질문요~ [5] woojoo1632 04/12/29 1632
6206 동영상문제요.. 임수정만세1515 04/12/29 1515
6205 기타에 관한 질문... [1] Zeroize2195 04/12/29 2195
6204 펭귄 프로그램에 대한 몇가지 질문 입니다. [5] 우우웅1795 04/12/29 1795
6203 5.1 ch 추천부탁드립니다... [4] JHfam1798 04/12/29 1798
6202 [러브스토리인하버드] SBS 드라마플러스.. [3] 잃어버린기억1628 04/12/29 1628
6201 여러가지 질문들.... [1] 자갈치1585 04/12/29 1585
6200 위닝7을 하다가 점점 빨라져요.. [2] lightkwang1604 04/12/29 1604
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로