标题:请教一下这程式码~~~
只看楼主
renhong999
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-1-30
 问题点数:0 回复次数:2 
请教一下这程式码~~~
主要有两行看不懂~
为何---sum+=(a[i]-'0')*(8-i);
       if(code==(a[7]-'0'))  後面要加-'0'呢?

程序如下:
#include<stdio.h>
main()
{
      char number[9];
      printf("enter the uniform number:");
      scanf("%s",number);
      if(valid(number));
      printf("the number %s is valid\n",number);
      else
      printf("the number &s is invalid\n",number);
}

int valid(char a[])
{
    int i,sum,code;
    sum=0;
    for(i=0,i<=6;i++)
    sum+=(a[i]-'0')*(8-i);
    code=sum%10;
    if(code==(a[7]-'0'))
       return (1);
    else
       return (0);
}

搜索更多相关主题的帖子: number 程式 sum valid 
2008-01-30 17:36
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
因为'0' != 0
程序我没看,但是按照问的问题看,输入的数据应该是字符(串),而处理时需要将字符(串)中的字符转换为数,因此需要减
'9'-'0'=9
'2'-'0'=2

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2008-01-30 19:34
renhong999
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-1-30
得分:0 
原来是要把字串转换成数值~~
谢谢~~
2008-01-31 15:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-199126-1-1.html




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

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