| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1613 人关注过本帖
标题:运行结果最后不知道为什么多输出了几个繁体字,(数组输出)
只看楼主 加入收藏
o天道酬勤o
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2016-11-4
结帖率:94.44%
收藏
已结贴  问题点数:18 回复次数:3 
运行结果最后不知道为什么多输出了几个繁体字,(数组输出)
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    int n,i,len,a,s,y,yan,b;
    char id[50][50];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%s",id[i]);
     } 
     for(i=0;i<n;i++)
    {
    len=strlen(id[i]);
    if(len==15)
    {
        id[i][16]=id[i][14];
        id[i][15]=id[i][13];
        id[i][14]=id[i][12];
        id[i][13]=id[i][11];
        id[i][12]=id[i][10];
        id[i][11]=id[i][9];
        id[i][10]=id[i][8];
        id[i][9]=id[i][7];
        id[i][8]=id[i][6];
        a=(id[i][14]-'0')*100+(id[i][15]-'0')*10+id[i][16]-'0';
        if(a>965&&a<=999)
        {id[i][6]='1';id[i][7]='8';}
        else 
        {id[i][6]='1';id[i][7]='9';}
        s=(id[i][0]-'0')*7+(id[i][1]-'0')*9+(id[i][2]-'0')*10+(id[i][3]-'0')*5+(id[i][4]-'0')*8+(id[i][5]-'0')*4+(id[i][6]-'0')*2+(id[i][7]-'0')+(id[i][8]-'0')*6+(id[i][9]-'0')*3+(id[i][10]-'0')*7+(id[i][11]-'0')*9+(id[i][12]-'0')*10+(id[i][13]-'0')*5+(id[i][14]-'0')*8+(id[i][15]-'0')*4+(id[i][16]-'0')*2;
        y=s%11;
        if(y==0)id[i][17]='1';
        if(y==1)id[i][17]='0';
        if(y==2)id[i][17]=88;
        if(y==3)id[i][17]='9';
        if(y==4)id[i][17]='8';
        if(y==5)id[i][17]='7';
        if(y==6)id[i][17]='6';
        if(y==7)id[i][17]='5';
        if(y==8)id[i][17]='4';
        if(y==9)id[i][17]='3';
        if(y==10)id[i][17]='2';
        printf("%s\n",id[i]);    
    }
    else
    {
    s=(id[i][0]-'0')*7+(id[i][1]-'0')*9+(id[i][2]-'0')*10+(id[i][3]-'0')*5+(id[i][4]-'0')*8+(id[i][5]-'0')*4+(id[i][6]-'0')*2+(id[i][7]-'0')+(id[i][8]-'0')*6+(id[i][9]-'0')*3+(id[i][10]-'0')*7+(id[i][11]-'0')*9+(id[i][12]-'0')*10+(id[i][13]-'0')*5+(id[i][14]-'0')*8+(id[i][15]-'0')*4+(id[i][16]-'0')*2;
        y=s%11;
        if(y==0)b='1';
        if(y==1)b='0';
        if(y==2)b=88;
        if(y==3)b='9';
        if(y==4)b='8';
        if(y==5)b='7';
        if(y==6)b='6';
        if(y==7)b='5';
        if(y==8)b='4';
        if(y==9)b='3';
        if(y==10)b='2';
        if(id[i][17]==b)printf("Valid\n");
        else printf("Invalid\n");
        //printf("%c\nb%d\n%dy\n",id[i][17],b,y);
    }
    }
    return 0;
}

图片附件: 游客没有浏览图片的权限,请 登录注册

上面这张图多了一个b
图片附件: 游客没有浏览图片的权限,请 登录注册




[此贴子已经被作者于2016-11-15 12:32编辑过]

2016-11-14 23:27
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:9 
打印前加一句
id[i][18] = 0;
            printf("%s\n", id[i]);
2016-11-15 09:10
EdmundDantes
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:62
专家分:173
注 册:2016-11-9
收藏
得分:9 
输出乱码和繁体字,一般都是数组或指针越界访问了不属于它的内存,你的代码太多了,没细看,希望可以帮到你
2016-11-15 10:31
o天道酬勤o
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2016-11-4
收藏
得分:0 
谢谢
2016-11-17 15:52
快速回复:运行结果最后不知道为什么多输出了几个繁体字,(数组输出)
数据加载中...
 
   



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

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