문제
내가 작성한 코드
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
void change(int **ptr, int changevalue, int changeindex, int x); //change 함수 선언
int main() {
int x; //배열의 개수 입력
scanf("%d", &x);
int num[x]; //배열 선언
for(int i = 0; i<x; i++){
scanf("%d", &num[i]);
}
int changeindex, changevalue; //바꿀 위치, 바꿀 값
scanf("%d %d", &changeindex, &changevalue);
int *ptr = # //포인터와 연결
change(&ptr, changevalue, changeindex, x); //change 함수 호출
for(int i = 0; i<x; i++){ //바뀐 배열 출력
printf("%d ", *(ptr+i));
}
printf("\n");
return 0;
}
void change(int **ptr, int changevalue, int changeindex, int x){ //change 함수 부분
for(int i = 0; i<x; i++){
if(i == changeindex){ //바꿔야 하는 index 도달시
*(*ptr+i) = changevalue; //값 바꿔서 저장
}
}
}
배열의 일부만을 바꾸는 것이기에 주소 전체를 바꾸지 않도록 주의!
'C언어 > 주차별 문제' 카테고리의 다른 글
[10주차] 2차원 배열 정렬 (0) | 2023.06.06 |
---|---|
[10주차] 역방향 출력 (0) | 2023.06.06 |
[10주차] 배열의 Swap (0) | 2023.06.06 |
[10주차] 이중포인터를 이용한 최솟값, 최댓값 구하기 (0) | 2023.06.06 |
[8주차] 개미 (0) | 2023.04.23 |