C프로그램 질문있어요~ㅠㅠ
피리
=====================================================
프로그램을 짜보았는데
에러는 안나는데 프로그램이 중간에 멈춰요~ㅠㅠ
밑에문제 처럼 프로그램을 돌리고 싶은데
잘 안되네요~ (제가 짰던 소스는 맨 밑에 있어요~)
밑에문제처럼 프로그램이 돌아갈 수 있도록 수정이나
다시 프로그램을 짜주셨으면 해요~
제가 아직 C언어 밖에 안배워서
C언어로 짜주세요~
부탁드립니다.
도와주세요ㅠㅠ
=========================================================================================
무인도에 30명의 사람이 갖혔다.
탈출할 수 있는 보트가 하나 있는데, 7명만 탈수 있는 보트다.
그래서 하루에 한명씩 죽여서 30명의 사람에서 7명이 남을때 까지 죽인다.
죽이는 방법(조건)은
바구니에 번호가 써있는 공이 들어있는데, 이공을 하나씩 30명이 뽑아서(예를 들어 대장이 10번 공을 뽑으면 10번 공을 가진 사람이 죽는다)
두번째 뽑은 공의 숫자는 뽑은 숫자 간격으로 사람이 죽는다.
(예를 들어 5를 뽑으면 여섯번째 있는 사람이 죽는다. 나부터 시작인데 내가 1번이었다면 5칸을 가서 6번째 사람이 죽는것이다)
죽으면 리스트에서 빼고 또 죽으면 리스트에서 빼기를 7명이 남을때까지 반복하여 죽인다.
마지막 조건은 동전을던져서 앞면이 나오면 오른쪽으로 돌아가고 뒷면이 나오면 왼쪽으로 나온다 프로그램 수행할떄 한번 던지면 되고, 더블리 링크드 리스트를 이용하면 된다.
맨마지막에 남는 7명을 리스팅 한다.
노드의 구조는 (번호와 이름), (번호와 이름)... 이런식으로미리 배열로 정해 놓고 맨마지막에 몇번 누구 몇번 누구.. 남았다 이렇게 출력하는 프로그램
===============================================================================================================
// 제가 짠 소스예요 하지만 돌아가지 않아요. 수정이나 새로짜주세요~ㅠㅠ
#include stdio.h
#include stdlib.h
#include string.htypedef struct node *node_pointer;
typedef struct node{
int pname;
struct node *pre;
struct node *next;
}node; // 이중 노드 선언node *head; //head 선언void insertnode(t, x) //1부터 k까지의 값을 가지는 환형 연결리스트 구성
struct node *t;
struct node *x;
{
int i;
t=(node*)malloc(sizeof(node));
t-pname = 1;
head = t;for(i=2; i=30; i++)
{
t-next =x;
x=(node*)malloc(sizeof(node)); // t의 다음 노드 생성
x=x-next;
x-next-pre=t;
x-next=t;
0
}
x = head;
}
void deletenode(y)
node *y;
{ // t 다음 노드를 삭제y-pre-next=y-next;
y-next-pre=y-pre;
}
void delete(int a, node *y)
{
insertnode(30);
y=head;if(y-pname==a)
{
printf(%s, y-pname);
deletenode(a);y=head;
head=head-next;
}
}void stepnode(int n, int step) // n개의 노드를 step간격으로
{
int i;
node *t;
insertnode(n); //환형리스트 구성
t = head;
while(t != t-next) //연결리스트에 노드가 남아 있을 동안
{
for(i=0; i step-1; i++) //즉, step만큼 가서 그 노드의 값 출력
t= t-next;
printf( %d , t-next-pname);
deletenode(t); //출력하고 삭제
}printf( %d \n, t-pname); //마지막 노드 출력
}
void main(int n, node *t)
{while(1)
{
node *y;int step;
int i;char *name[30]={ Alexi , Alice , Betty , Cara , Caroline ,
/SPbsp;Cherry , Daisy , Dana , Dorothy , Eden\n
Elva , Gemma , Grace , Mag , Mandy ,
Mary , Nancy , Nicola , Olga , Pag\n ,
Pandora , Patricia , Penny , Phoenix , Baba ,
Barney , Charles , Cindy , Corby , Dali\n };
for(i=1; i=30; i++){
strcpy(t-pname, name[i]);
printf(%s, t-pname);
}//char al[30];
//strcpy(al, name[i]);
//printf(%s, al);
printf(\n);
printf( 총 명수를 입력하시오 : %d , &n);
scanf(%d, &n);
printf(%d, &n);
printf(\n);
printf( 사람의 이름을 출력하시오: %s \n, t-pname);
//노드 순서대로 사람 순서
printf(\n);
printf( 첫번째 숫자를 입력하시오 : );
scanf(%d,&y);
printf(%d,&y); //첫번째 노드 삭제
printf( \n);printf( 두번째 숫자를 입력하시오 : );
//입력된 수 만큼 건너 뛰어서 삭제
scanf(%d, &step);
printf(%d, &step);
return;
}
}
=================================================================
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |
2691678 | C언어 함수 질문이요~!!! | 연보라 | 2025-04-15 |
2691650 | 반복문 | 돋가이 | 2025-04-15 |
2691618 | 링크드리스트 개념 질문이예요 (3) | 맨마루 | 2025-04-15 |