#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ALPHABET 100
void SetString(char ar[], int n){
long seed;
int i;
seed = time(NULL);
srand(seed);
for(i=0; i<n; i++){
ar[i] = rand()& + 'a';
}
}
void CopyReverse(char ar1[], char ar2[], int n){
int i;
char save;
for(i=0; i<n; i++){
save = ar1[i];
ar2[n-i] = save;
}
}
void PrnCharArr(char ar[], int n){
printf("생성된 문자: %s\n", ar);
}
void main(void)
{
char a[ALPHABET]={0};
char b[ALPHABET]={0};
int n;
printf("문자의 개수는?");
scanf("%d", &n);
SetString(a, n);
printf("1.%s\n", a);
CopyReverse(a, b, n);
printf("2.%s\n", b);
/*
PrnCharArr(a, n);
PrnCharArr(b, n);
*/
}
저기 CopyReverse함수가 작동을안하는데
어디문법상틀린게잇음? 돌리면 공백나오던데;;
void CopyReverse(char ar1[], char ar2[], int n){
int i;
char save;
for(i=0; i<n; i++){
save = ar1[i];
ar2[n-i] = save;
}
}
요부분..
ar2[n-i] = save; 이거 보고 웃으면 되냐?
ar2[n - 1 - i] = save; 여야지 몽충아.
ar2[n - 1 - i] = ar1[ i ]; 로 줄이면 그만이고.
std::reverse 쓰세요 - DCW
왜 ar2[n-1]=save; 저건안되는거야?
ㄴ n-i로 하면 n이 5면 i가 0일때 인덱스가 5잖아
산수를 못하니 ㅡㅡㅋ 답을 가르쳐줘도
엌그렇네 ㅋㅋ
헤헤 근데오류난다
인터넷뒤져보니까 걍 배열을 뒤집을떈 for문에 for(i=0; i<n/2; i++){ save = ar2[i]; ar2[i] = ar2[(n-1)-i]; ar2[(n-1)-i] = save;
n/2하던데 왜그런거지
엥 오타였네 잘되네 ㅎ
뒤집는다는 의미를 모르겠냐? 배열 {1,2,3,4,5}가 {5,4,3,2,1}이 되는거라고. 당연히 n/2가 되어야지.
그건 inplace reverse 지.
별도의 배열을 추가하지 않고 자체 배열 내부에서 뒤집을때 n / 2