데이터 구조: 조세 프 링 문제 (C 언어)
학교의 교재 가 매우 엄밀 하지 않 아서 이 책 은 그래도 고 쳤 고, 최신 판 은 여전히 일련의 문제 가 있다.예 를 들 어 오늘 의 조세 프 링 문 제 는 인원수 와 순환 횟수 를 입력 합 니 다.나 는 코드 를 다 쓴 후에 책 에 있 는 순서 와 다르다 는 것 을 알 게 되 었 다. 나의 코드 를 보 니 많은 문제 가 없 는 것 같 았 다. 그래서 나 는 스스로 세 어 보 았 는데 책 에 있 는 답 이 과연 틀 렸 다 는 것 을 알 게 되 었 다.구체 적 인 교 재 는 어느 책 인지 말 하지 않 고 너무 추천 하지 않 습 니 다. 가장 많이 주 는 것 은 바로 생각 입 니 다. 교과서 의 코드 는 양 을 취하 면 됩 니 다. 가장 중요 한 것 은 당신 이 그 진정한 방법 을 이해 하 는 지 에 달 려 있 습 니 다.
조세 프 링 문제:
#include "stdio.h"
#include "stdlib.h"
struct student
{
int num;
int password;
struct student *next;
};
struct student *CreateList();
void JosephusOperate(struct student *L,int m);
int main()
{
int m;
struct student *L;
L=CreateList();
scanf("%d",&m);
JosephusOperate(L,m);
return 0;
}
struct student *CreateList()
{
int n,i;
struct student *L,*pNew,*pCur=NULL;
scanf("%d",&n);
L=(struct student *)malloc(sizeof(struct student));
pNew=(struct student *)malloc(sizeof(struct student));
scanf("%d",&pNew->password);
pNew->num=1;
L=pNew;
for(i=1;i<n;i++)
{
pCur=pNew;
pNew=(struct student *)malloc(sizeof(struct student));
scanf("%d",&pNew->password);
pNew->num=i+1;
pCur->next=pNew;
pCur=pNew;
}
pCur->next=L;
return L;
}
void JosephusOperate(struct student *L,int m)
{
int i;
struct student *pHead,*pMid,*pMid1,*pCur=NULL;
pHead=L;
pMid=L;
while(pHead!=pCur)
{
for(i=1;i<19;i++)
{
pMid=pMid->next;
pMid1=pMid->next;
}
printf(" %d , %d
",pMid1->num,pMid1->password);
pCur=pMid1->next;
pMid->next=pMid1->next;
pMid=pCur;
free(pMid1);
}
}
이 코드 도 직접 써 서 완벽 하 게 만 들 지 못 했다.이것 은 좋 은 습관 이 아 닐 수도 있 지만 저 는 하드웨어 에 치 우 친 것 을 좋아 합 니 다. 만약 에 여러분 이 참고 할 필요 가 있다 면 여러분 들 은 진지 하 게 고 쳐 야 합 니 다. - -...그런데?결 과 는 그래도 옳 으 니 이 점 은 안심 해도 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.