// array_operation.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//
#include "stdafx.h"
#include "stdlib.h"
void ope();
int _tmain(int argc, _TCHAR* argv[])
{
int a = 0;
int opnum = 0;
int arr[1000];
printf("배열의 크기를 입력해주세요. : ");
scanf("%d", &a);
int nonreal = a;
for(int i=0; i<a; ++i)
{
printf("%d 번째 변수를 입력해주세요.", i);
scanf("%d", &arr[i]);
}
printf("입력하신 배열의 변수는\n");
for(int j=0; j<a; ++j)
{
if(arr[j]>=0)
{
printf("%d ", arr[j]);
}
}
printf("\n입니다.\n");
printf("////////////////////////////////////////////////\n");
printf("원하는 operation을 선택해주세요.\n1.insert\n2.delete\n3.delete_value\n원하는 작업의 번호를 눌러주세요. : ");
scanf("%d", &opnum);
if(opnum = 1)
{
int insert = 0;
int insert_val = 0;
printf("Inset operation 입니다.\n현재의 배열은\n");
for(int j=0; j<a; ++j)
{
if(arr[j]>=0)
{
printf("%d ", arr[j]);
}
}
printf("\n입니다.\n");
printf("몇번째 배열에 값을 insert 하시겠습니까?");
scanf("%d", &insert);
printf("넣고자 하는 값을 입력해주세요.");
scanf("%d", &insert_val);
++a;
int q = a-1;
for(q; q <=insert-1 ; q--) <--------------------------------------------------------------------------------------------------------------여기부분입니다.
{
arr[q] = arr[q-1];
}
arr[insert-1]=insert_val;
printf("insert된 배열은\n");
for(int j=0; j<3; ++j)
{
if(arr[j]>=0)
{
printf("%d ", arr[j]);
}
}
printf("\n입니다.\n");
}
else if(opnum = 2)
{
}
else if(opnum = 3)
{
}
else
{
printf("잘못된 번호입니다.");
}
--------------------------------------------------------------------------------------------------------------------------------------------------------
이리하여 임의이 3개의 배열 1,2,3을 만들고나서
insert에 들어가 두번째 자리에 4를 입력하여 1,4,2,3을 받고 싶은데
어째서 1,4,3이 라고 나오는지 모르겠습니다. 진짜루요 ;_;
도와주세요 레임분들!
return 0;
}
arr[q] = arr[q-1];
이걸
arr[q+1] = arr[q]; 로 바꿔주셔야 겠네요. 이유는 본인의 프로그래밍 실력 향상을 위해서 생략.