优美的代码1

原题P1055 [NOIP2008 普及组] ISBN 号码

赏析:

优美又简洁的代码
短短的代码很能看出一个人的编程和思维水平
强大的整合提取能力 把很多需要做但可以一起做的事 最大化的放在一起了 
不像我之前写的,每个功能都用一个循环表示,这样时间长,代码量大,还不容易维护

虽然我的也过了,但还是很建议手敲一遍!想想他是怎么写出来的

https://www.luogu.com.cn/problem/solution/P1055


#include //代码简洁明了(个人观点)
int main(void){
  char a[14], mod[12] = "0123456789X"; //先将mod11后的十一个字符存入数组
  gets(a); //输入字符串
  int i, j = 1, t = 0;
  for(i = 0; i < 12; i++) {
        if(a[i] == '-') continue; //字符串为分隔符‘-’时跳过此次循环进入下一次循环
    t += (a[i]-'0')*j++; //t储存 第j个  数字  * j 的和//注意!!a[i]-'0'没有减0就错了 
  }
  if(mod[t%11] == a[12]) printf("Right");
  else {
      a[12] = mod[t%11]; //若识别码错误,则赋正确的识别码,然后输出
      puts(a);
  }
  return 0;
}

ps:现在很多编译器不支持gets()了,可以用fgets(),或者cin.getline这种别的

你可能感兴趣的:(优美代码赏析,c语言,acm竞赛,蓝桥杯)