c언어 배열 역출력 함수 질문이요!
조회수 836회
#define _crt_secure_no_warnings
#include<stdio.h>
void GetIntArray(int v[], int n);
void ReverseIntArray(int v[], int n);
void PrintIntArray(int v[], int n);
int main()
{
int tem[] = { 0 };
int n;
GetIntArray(tem,n);
ReverseIntArray(tem,n);
PrintIntArray(tem,n);
}
void GetIntArray(int v[], int n)
{
int i;
for (i = 0; i < n; i++)
scanf("%d", &v[i]);
}
void ReverseIntArray(int v[], int n)
{
int i;
int tem2[] = { 0 };
for (i = 0; i < n; i++)
tem2[i] = v[i];
for (i = 0; i < n; i++)
v[i] = tem2[n - 1 - i];
}
void PrintIntArray(int v[], int n)
{
int j;
for (j = 0; j < n; j++)
printf("%d", v[j]);
}
배열 역출력 함수 질문입니다. n개의 정수를 입력받아 1,2,3,4,5-> 5,4,3,2,1이 나와야 합니다 어디가 오류인지 모르겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
배열은 선언과 함께 크기가 고정되어 있어야 해요. 지금은 배열 선언부분이 모두 틀렸고, n이 입력 받을 값의 개수를 저장할 변수인거 같은데 아무 값도 입력되어 있지 않아서 정상 동작하지 않습니다.
수정된 아래 코드 참고하세요.
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> void GetIntArray(int v[], int n); void ReverseIntArray(int v[], int n); void PrintIntArray(int v[], int n); #define ARRAY_SIZE 20 int main() { int tem[ARRAY_SIZE] = { 0 }; int n = 5; GetIntArray(tem, n); ReverseIntArray(tem, n); PrintIntArray(tem, n); } void GetIntArray(int v[], int n) { int i; for (i = 0; i < n; i++) scanf("%d", &v[i]); } void ReverseIntArray(int v[], int n) { int i; int tem2[ARRAY_SIZE] = { 0 }; for (i = 0; i < n; i++) tem2[i] = v[i]; for (i = 0; i < n; i++) v[i] = tem2[n - 1 - i]; } void PrintIntArray(int v[], int n) { int j; for (j = 0; j < n; j++) printf("%d", v[j]); }
- 결과
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력