鱼C论坛

 找回密码
 立即注册
查看: 3715|回复: 5

[已解决]拉丁方阵问题

[复制链接]
发表于 2016-1-23 11:35:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{int data;
struct Node *next;
}node;
   node *creat(int n)
  {int i=1;
  node *head=(node *)malloc(sizeof(node));
  node *s,*p;
  s=head;
  node *rare=(node *)malloc(sizeof(node));
  rare->next=head;
  rare->data=n;
  for(i=1;i<=n-1;i++)
   {p=(node *)malloc(sizeof(node));
   s->next=p;
   p->next=rare;
   p->data=i;
   s=p;
   }
   rare->next=head->next;
   free(head);
   return(rare);
  }
  void   printlist(node* rare,int n)
  {int i=1;
  rare=rare->next;
  for(;i<n;i++)
   {printf("%d ",rare->data);
   rare=rare->next;
   }
   printf("\n");
  }
  int main()
  {int n,i;
  scanf("%d",&n);
  node * rare=creat(n);
  for(i=0;i<n;i++)
  printlist(rare,n);
  rare=rare->next;
  }
  
  
最佳答案
2016-2-5 16:53:41
这是我写的Latin方阵问题代码,给你参考下咯
include<stdio.h>
#include<stdlib.h>
typedef struct node
{
    int data;
    struct node *next;
}sqlist,*linklist;

linklist createlist(int n)
{
    linklist head=NULL;
    linklist r,s;
    int i;
    r=head;
    for(i=1;i<=n;i++)
    {
        s=(linklist)malloc(sizeof(sqlist));
        s->data=i;
        if(head==NULL)
        {
            head=s;
        }
        else r->next=s;
        r=s;
    }
    r->next=head;
    return head;
}

void distroylist(linklist *list,int n)
{
    linklist ptr=*list;
    linklist buff[n];
    int i=0;
    while(i<n)
    {
        buff[i++]=ptr;
        ptr=ptr->next;
    }
    for(i=0;i<n;i++)
    {
        free(buff[i]);
    }
    *list=0;
}

void main()
{
    linklist p;
    int i,n;
    while(1)
    {
        int j=0;
        printf("please input number(limit 2~9) n:");
        scanf("%d",&n);
        printf("\n");
        if(n<1||n>9)exit(0);
        if(n==1)
        {
            printf("End of the program.\n");
            break;
        }
        p=createlist(n);
        while(j<n)
        {
            for(i=0;i<n;i++)
            {
                printf("%d\t",p->data);
                p=p->next;
            }
            printf("\n");
            p=p->next;
            j++;
        }
        distroylist(&p,n);
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-1-23 11:50:33 | 显示全部楼层
C:\Documents and Settings\Administrator\桌面\1RFTO$7DL_ZIR4F8WOH04CB.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-23 11:51:11 | 显示全部楼层

。。。怎么发图。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-23 21:14:39 From FishC Mobile | 显示全部楼层
输出不对啊,求助啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-5 13:43:08 | 显示全部楼层
路过,学习一下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-5 16:53:41 | 显示全部楼层    本楼为最佳答案   
这是我写的Latin方阵问题代码,给你参考下咯
include<stdio.h>
#include<stdlib.h>
typedef struct node
{
    int data;
    struct node *next;
}sqlist,*linklist;

linklist createlist(int n)
{
    linklist head=NULL;
    linklist r,s;
    int i;
    r=head;
    for(i=1;i<=n;i++)
    {
        s=(linklist)malloc(sizeof(sqlist));
        s->data=i;
        if(head==NULL)
        {
            head=s;
        }
        else r->next=s;
        r=s;
    }
    r->next=head;
    return head;
}

void distroylist(linklist *list,int n)
{
    linklist ptr=*list;
    linklist buff[n];
    int i=0;
    while(i<n)
    {
        buff[i++]=ptr;
        ptr=ptr->next;
    }
    for(i=0;i<n;i++)
    {
        free(buff[i]);
    }
    *list=0;
}

void main()
{
    linklist p;
    int i,n;
    while(1)
    {
        int j=0;
        printf("please input number(limit 2~9) n:");
        scanf("%d",&n);
        printf("\n");
        if(n<1||n>9)exit(0);
        if(n==1)
        {
            printf("End of the program.\n");
            break;
        }
        p=createlist(n);
        while(j<n)
        {
            for(i=0;i<n;i++)
            {
                printf("%d\t",p->data);
                p=p->next;
            }
            printf("\n");
            p=p->next;
            j++;
        }
        distroylist(&p,n);
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 11:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表