`如果 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";
}
}