【PAT乙级】刷题记录(七)

换个格式输出整数(模拟1038)

#include <stdio.h>
int main()
{
	int n,a,b,c;
	scanf("%d",&n);
    c=n%10;
	b=n/10%10;
	a=n/100;
	for(int i=0;i<a;i++){
	    printf("B");
	}
	for(int j=0;j<b;j++){
	    printf("S");
	}
	for(int k=0;k<c;k++){
	    printf("%d",k+1);
	}
	return 0;
}

写出这个数(模拟1034)

#include <stdio.h>
#include <string.h>
int main()
{
	int sum=0;
	int a[105]={0};
	char n[105];
	char str[10][5]={{'l','i','n','g'},{'y','i'},{'e','r'},{'s','a','n'},{'s','i'},{'w','u'},{'l','i','u'},{'q','i'},{'b','a'},{'j','i','u'}};
	gets(n);
	int len=strlen(n);
	for(int i=0;i<len;i++){
	   sum=sum+(n[i]-'0');
	}
	for(int i=0;i<len;i++){
	   a[i]=sum%10;
	   sum=sum/10;
	}
	for(int j=len-1;j>0;j--){
		if(a[j]>0){
		    printf("%s ",str[a[j]]);
		}
	}
    printf("%s\n",str[a[0]]);
	return 0;
}

查验身份证(真题1031)

#include <stdio.h>
int main(){
 char ID[100][19], N, i, j = 0, Z[11] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}, count[100];
 scanf("%d", &N);
 getchar();
 for (i = 0; i < N; i++){
  scanf("%s", ID[i]);
  getchar();
  if(Z[((ID[i][0] - 48)*7+(ID[i][1] - 48)*9+(ID[i][2] - 48)*10+(ID[i][3] - 48)*5+(ID[i][4] - 48)*8+(ID[i][5] - 48)*4+(ID[i][6] - 48)*2+(ID[i][7] - 48)+(ID[i][8] - 48)*6+(ID[i][9] - 48)*3+(ID[i][10] - 48)*7+(ID[i][11] - 48)*9+(ID[i][12] - 48)*10+(ID[i][13] - 48)*5+(ID[i][14] - 48)*8+(ID[i][15] - 48)*4+(ID[i][16] - 48)*2 )%11] != ID[i][17]){
   count[j] = i;
   j++;
  }
 }
 for (i = 0; i < j; i++)
  printf("%s\n", ID[count[i]]);
 if (j == 0)
  puts("All passed");
 return 0; 
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值