값들에 순위먹이는 프로그램입니다
카제
질문 제목 : 값들에 순위먹이는 프로그램입니다 질문 요약 :위 값처럼 입력시
순위 값
1 55
2 33
2 33
4 20
5 1
처럼 나오게 하고싶은데 안나옴;;
질문 내용 :
#include stdio.h
#define ARR_SIZE 1000
void GetData(int *N, double x[]);
void Rank(int N, double x[], double k[][2]);
void ShowData(int N, double k[][2]);
void main()
{
int N;
double x[ARR_SIZE];
double k[ARR_SIZE][2];
GetData(&N, x);
Rank(N, x, k);
ShowData(N, k);
}#include stdio.h
void GetData(int *N, double x[])
{
int i;
printf(1000개 이하의 값을 등수를 매겨 반환합니다.\n);
do {
printf(\tN:);
scanf(%d, N);
} while((*N1000)||(*N0));
for(i=0; i*N; i=i+1) {
printf(\tx[%d]=, i+1);
scanf(%lf, &x[i]);
}
}void Rank(int N, double x[], double k[][2])
{
int i;
int j;
double temp;
for(i=0; iN; i=i+1) {
k[i][0]=i+1;
k[i][1]=x[i];
}
for(i=0; iN-1; i=i+1) {
for(j=i+1; jN; j=j+1) {
if(k[i][1]k[j][1]){
temp=k[i][1];
k[i][1]=k[j][1];
k[j][1]=temp;
}
}
}
for(i=1; iN; i=i+1) {
if(k[i][1]==k[i-1][1]) {
k[i][0]=k[i-1][0];
}
}
}#include stdio.h
void ShowData(int N, double k[][2])
{
int i;
printf(\n);
printf(\t순위\t\t값\n);
for (i=0; iN; i=i+1) {
printf(\t%d\t\t%f\n, k[i][0], k[i][1]);
}
}함수들은 각각 .cpp 따로 만들어줘서 사용했음.
-
보미나
제생각에는 앞에 오류가 나서 그 라인이 제대로 수행이 안되는거 같습니다.
(반대인 경우는 앞에건 수행하하지만 뒤에쪽에서 제대로 수행을 못 하겠죠.)
(int)-를 붙여주시면 double 형 값을 int 형 값으로 바뀌줍니다.
그러면 당연히 %d로 출력이 가능하겠죠.^^ -
황예
하나만 질문해도 될까요 ㅠㅠ?
printf에서 앞에꺼만 정수형으로 잘못출력했는데 왜 뒤에꺼도 출력이 안되는건가요?
(int)하나 붙여주니 오른쪽것도 출력이 되더라구요. -
해뜰참
감사합니다 ㅠㅠ.
출력부분은 printf(\\\t%d\\t\\t%f\\n\ -
루라
배열 값이 더블형이데 순위 출력 하는 부분에서 인트형을 출력 하시기 때문에 순위가 표시가 안되시네요.
printf(\\\t%d\\t\\t%f\\n\