zoukankan      html  css  js  c++  java
  • Caesar

    要求实现用户输入一个数改变26个字母的排列顺序

    例如输入3:

    DEFGHIJKLMNOPQRSTUVWXYZABC

    输入-3:

    XYZABCDEFGHIJKLMNOPQRSTUVW

    使用循环链表

    代码如下:

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 
     4 #define OK 1
     5 #define ERROR 0
     6 
     7 typedef int status;
     8 typedef char ElemType;
     9 
    10 typedef struct DualNode
    11 {
    12     ElemType data;
    13     struct DualNode *prior;
    14     struct DualNode *next;
    15 }DualNode,*DuLinkList;
    16 
    17 status InitList(DuLinkList *L)
    18 {
    19     DualNode *p,*q;
    20     int i;
    21     *L=(DuLinkList)malloc(sizeof(DualNode));
    22 
    23     if(!(*L))
    24         return ERROR;
    25 
    26     (*L)->next=(*L)->prior=NULL;
    27     p=(*L);
    28 
    29     for(i=0;i<26;i++)
    30     {
    31         q=(DualNode*)malloc(sizeof(DualNode));
    32         if(!q)
    33             return ERROR;
    34 
    35         q->data='A'+i;
    36         q->prior=p;
    37         q->next=p->next;
    38         p->next=q;
    39 
    40         p=q;
    41     }
    42     p->next=(*L)->next;
    43     (*L)->next->prior=p;
    44 
    45     return OK;
    46 }
    47 
    48 void Caesar(DuLinkList *L,int i)
    49 {
    50     if(i>0)
    51     {
    52         do
    53         {
    54             (*L)=(*L)->next;
    55         }while(--i);
    56     }
    57     if(i<0)
    58     {
    59         (*L)=(*L)->next;
    60         do
    61         {
    62             (*L)=(*L)->prior;
    63         }while(i++);
    64     }
    65 }
    66 
    67 int main()
    68 {
    69     DuLinkList L;
    70     int i,n;
    71     printf("请输入一个整数:");
    72     scanf("%d",&n);
    73 
    74     InitList(&L);
    75     Caesar(&L,n);
    76 
    77     for(i=0;i<26;i++)
    78     {
    79         L=L->next;
    80         printf("%c",L->data);
    81     }
    82     printf("
    ");
    83 
    84     return 0;
    85 
    86 }
  • 相关阅读:
    Voice over IP
    [转】:TCP/IP详解学习笔记(5)
    windows phone 7 version: ObservableCollectionEx (1)
    MA0003 移动智能网原理
    TCP 网络书籍
    windows Phone 7如何实现background的情况下不丢失数据
    最近想要学习和了解的东东
    Windows phone 7 开发注意事项
    android Tab标签下得按钮
    新浪微博教程(一)
  • 原文地址:https://www.cnblogs.com/52Cassie/p/4817592.html
Copyright © 2011-2022 走看看