isdigit函数的用法:

`如果 isdigit 函数包含在ctype.h头文件中,那字符串为数字。
计算过程:原型: int isdigit(char c)。 
用法:#include <ctype.h>。   
功能:判断字符c是否为数字。   
说明:当c为数字0-9时,返回非零值,否则返回零。 这个函数是判断某一个字符是否为数字,可以用一个字符数组接受输入的字符,然后循环判断每一个字符是否为数字,如果其中一个不是数字,那么返回0,否则返回非0。
题目PTA  L1-016

#include<bits/stdc++.h>
using namespace std;
bool check(string id)
{    
 int temp[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};    
 int sum=0;    
 for(int i=0;i<id.length()-1;i++)    
 {        
  sum+=(id[i]-'0')*temp[i];    
 }    
 sum=sum%11;    
 map<int,char> zm={{0,'1'},{1,'0'},{2,'X'},{3,'9'},{4,'8'},{5,'7'},{6,'6'},{7,'5'},{8,'4'},{9,'3'},{10,'2'}};    
 if(id[17]==zm[sum])    
 {        
  return true;    
 }    
 else    
 {        
  return false;     
 } 
}
int main()
{    
 int n=0;    
 cin>>n;    
 bool all_pass=true;    
 for(int i=0;i<n;i++)    
 {        
  string id;        
  cin>>id;        
  string temp=id;        
  id.erase(17);        
  bool flag=true;        
  for(int j=0;j<id.length();j++)        
  {            
   if(!isdigit(id[j]))            
   {                
    flag=false;                
    break;            
   }        
  }        
  if(flag)        
  {            
   if(!check(temp))            
   {                
    cout<<temp<<endl;                
    all_pass=false;            
   }        
  }        
  else        
  {            
   cout<<temp<<endl;            
   all_pass=false;        
  }    
 }    
 if(all_pass)    
 {        
  cout<<"All passed";    
 }    
} 
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值