PAT Basic1031

本文分享了作者在程序设计过程中的心得,强调了编程时要注重细节的重要性。文章详细记录了一个程序验证案例,包括如何检查输入数据的有效性以及如何验证校验码是否正确,对于初学者来说,能够看到测试数据是一项非常有价值的功能。

//ps:这道题让我明白了写程序一定要细致,有些时候思路是对的,但是用程序表达出来的时候就会出各种错误,而且有时候在不知道出了点小错的程序还能通过一些测试用例,让你没法检测出到底哪出错了,写程序的时候逻辑和头脑一定要清楚,牛客网居然能看到测试数据,这对于初学者简直就是福音啊!!!我要转战nowcoder!!!!

#include<iostream>

#include<string.h>
using namespace std;
int main()
{
    int quan[17] = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
    char  x[11] = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };
    int N = 0;
    char s[20];
    char ss[101][20];
    int g = 0;
    int z = 0, p = 0;
    int k = 0;
    int flag ;
    cin >> N;
    for (int i = 0; i<N; i++)
    {
        cin >> s;
         p = 0;flag=0;
        for (int j = 0; j <strlen(s)-1; j++)
        {
          if(strlen(s)!=18)
          {
            flag = 1;
                strcpy(ss[g++], s);
                break;
          }
            if (s[j]>57||s[j]<48)
            {
                flag = 1;
                strcpy(ss[g++], s);
                break;
            }
            else{
                p += (s[j] - 48)*quan[j];
                k++;
            }
        }
        z = p % 11;
        cout<<"x[z]等于"<<x[z]<<" "<<"z等于"<<z<<"flag和s[17]等于"<<flag<<" "<<s[17]<<endl;
        if (x[z] != s[17]&&flag!=1)
            strcpy(ss[g++], s);
    }
    for (int i = 0; i<g; i++)
        cout << ss[i] << endl;
    if (g == 0)
        cout << "All passed";
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不要绝望总会慢慢变强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值