| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1811 人关注过本帖
标题:谁写的代码 简直是天才
取消只看楼主 加入收藏
小兔子慢慢
Rank: 2
等 级:论坛游民
帖 子:45
专家分:30
注 册:2009-4-13
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
谁写的代码 简直是天才
#include <math.h>
#include <stdio.h>
#include <conio.h>

void CRC(int m,int n)
{
    int i=0,j=0;
    int msg[50];
    int gx[20];
    int c[50];

    printf("\ninput the message's numbers:\n");        /*输入二进制信息(0 ~ m-1) */
    for(i=0;i<m;i++)
    {
        scanf("%d",&msg[i]);
    }
    printf("input the G(x)'s numbers:\n");        /*输入二进制生成多项式(0 ~ n-1)*/
    for(i=0;i<n;i++)
    {
        scanf("%d",&gx[i]);
    }

    /*将msg的值赋给c*/
    for(i=0;i<m;i++)
    {
        c[i]=msg[i];
    }
    for(i=m;i<m+n-1;i++)
    {
        c[i]=0;
    }

    for(i=0;i<m;i++)
    {
        if(c[i]==0) continue;
        else
        {
            for(j=0;j<n;j++)
            {
                c[i+j]=c[i+j]^gx[j];
            }
        }
    }

    for(i=0;i<n-1;i++)
    {
        msg[m+i]=c[m+i];
    }

    printf("The CRC:");    /*输出循环冗余码:数组msg[m+n-1]    */
    for(i=0;i<m+n-1;i++)
    {
        printf("%d",msg[i]);
    }
    printf("\n");
}

void CHECK(int k,int n)
{
    int i=0,j=0;
    double r;
    int msg[50];
    int gx[20];
    int c[50];

    printf("\ninput the CRC message:\n");        /*输入二进制信息(0 ~ m-1) */
    for(i=0;i<k;i++)
    {
        scanf("%d",&msg[i]);
    }
    printf("input the G(x):\n");        /*输入二进制生成多项式(0 ~ n-1)*/
    for(i=0;i<n;i++)
    {
        scanf("%d",&gx[i]);
    }

    /*将msg的值赋给c*/
    for(i=0;i<k;i++)
    {
        c[i]=msg[i];
    }

    for(i=0;i<k-(n-1);i++)
    {
        if(c[i]==0) continue;
        else
        {
            for(j=0;j<n;j++)
            {
                c[i+j]=c[i+j]^gx[j];
            }
        }
    }

    for(i=0,r=0;i<n-1;i++)
    {
        r=r+c[k-(n-1)+i]*pow(2,(n-2)-i);
    }

    if(r==0) printf("The message is correct\n");
    else printf("The message is wrong\n");

}

 void main()
{

    int m,n,k;
    char ch;
    for(;;)
    {
    /*    clrscr();*/
        printf("\n***1,Build a CRC message.");
        printf("\n***2,Check a CRC message.");
        printf("\n***0,End!\n");
        fflush(stdin);
        scanf("%c",&ch);

        switch(ch)
        {
            case '1':{
                printf("\nPlease input the message's long:");/*信息的长度m位    */
                scanf("%d",&m);
                printf("Please input the G(x)'s long:");/*生成多项式的长度n位(即阶为n-1)*/
                scanf("%d",&n);
                CRC(m,n);
            } break;
            case '2':{
                printf("\nPlease input the CRC message's long:");
                scanf("%d",&k);
                printf("Please input the G(x)'s long:");
                scanf("%d",&n);
                CHECK(k,n);
            } break;
            case '0':{
                printf("********** The End  **********\n");
                getch();
            /*    exit(0);*/
            } break;
            default:printf("There is something wrong.\n");
        }
        getch();
    }
}
搜索更多相关主题的帖子: 代码 天才 
2010-04-10 10:33
小兔子慢慢
Rank: 2
等 级:论坛游民
帖 子:45
专家分:30
注 册:2009-4-13
收藏
得分:0 
回复 4楼 Devil_W
你见过世面  有本事 给我写个更简单的
2010-04-12 08:38
小兔子慢慢
Rank: 2
等 级:论坛游民
帖 子:45
专家分:30
注 册:2009-4-13
收藏
得分:0 
回复 8楼 Alar30
写个吧
2010-04-12 08:45
快速回复:谁写的代码 简直是天才
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016750 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved