PAT乙级1072-----开学寄语 (20分)
Posted a982961222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT乙级1072-----开学寄语 (20分)相关的知识,希望对你有一定的参考价值。
1072 开学寄语 (20分)
输入样例:
4 2
2333 6666
CYLL 3 1234 2345 3456
U 4 9966 6666 8888 6666
GG 2 2333 7777
JJ 3 0012 6666 2333
输出样例:
U: 6666 6666
GG: 2333
JJ: 6666 2333
3 5
思路:
1.用数组下标表示违禁物品编号
2.不满4位数要补0,例如:编号12输出时为0012
首次通过代码:
1 #include<stdio.h> 2 3 int main(){ 4 int n,m;int num[10004]={0}; 5 scanf("%d %d",&n,&m); 6 for(int i=0;i<m;i++){ 7 int a; 8 scanf("%d",&a); 9 num[a]=1; 10 } 11 int counter_student=0;int counter_goods=0; 12 for(int i=0;i<n;i++){ 13 char name[6];int a;int c1=0; 14 scanf("%s %d",name,&a); 15 for(int j=0;j<a;j++){ 16 int b; 17 scanf("%d",&b); 18 if(num[b]==1){ 19 if(c1==0) { 20 if(counter_student!=0) printf(" "); 21 printf("%s: ",name); 22 if(b<1000&&b>=100) printf("0"); 23 else if(b<100&&b>=10) printf("00"); 24 else if(b<10) printf("000"); 25 printf("%d",b); 26 counter_student++;c1++; 27 } 28 else { 29 printf(" "); 30 if(b<1000&&b>=100) printf("0"); 31 else if(b<100&&b>=10) printf("00"); 32 else if(b<10) printf("000"); 33 printf("%d",b); 34 c1++; 35 } 36 } 37 } 38 counter_goods+=c1; 39 } 40 if(counter_student>0) printf(" %d %d",counter_student,counter_goods); 41 else printf("0 0"); 42 return 0; 43 }
以上是关于PAT乙级1072-----开学寄语 (20分)的主要内容,如果未能解决你的问题,请参考以下文章
1072 开学寄语 (20 分)(变量太多,把自己绕晕。养成注释习惯!并不会耽误时间,反而提高效率 )