北航2016上机真题
逆序数
题目描述
给定一个数n,将这个数的各位顺序颠倒,称为逆序数m。 例如1234的逆序数是4321。
输入
输入一个数n(0 如果m是n的k倍(k为整数),那么输出n*k=m。 如果m不是n的整数倍,那么输出n和n的逆序数。 样例输入 1234 1089 23200 样例输出 1234 4321 1089*9=9801 23200 00232 代码: #include intn,m; while(scanf(\ { m=0; int stack[20]; int top=-1; int temp = n; while(temp!=0) { stack[++top]=temp; temp=temp/10; } int j; for(j=0; j<=top; j++) { m=m*10+stack[j]; } if(m>n||m==n) { if(m%n==0) { printf(\ } else { printf(\for(int k=0; k<=top; k++) { printf(\ } printf(\ } } else { printf(\for(int l=0; l<=top; l++) { printf(\ } printf(\ } } return 0; } 字符串的解析 题目描述 给一个c语言的enum定义语句,输出enum中规定的各项值。 输入 输入一个c语言的enum定义语句。 输出 输出enum中规定的各项值。 样例输入 enum BOOL{true,false}; 样例输出 true 0 false 1 代码: #include char str1[4],str2[100]; char *s1,*s2; s1=str1; s2=str2; while(scanf(\ { if(strcmp(\ { gets(s2); int d1,d2=0; for(d1=0;s2[d1]!='\\0';d1++) { if(s2[d1]!=' ') s2[d2++]=s2[d1]; } s2[d2]='\\0'; inti,right=0,leght=0; for(i=0; s2[i]!='\\0'; i++) if(s2[i]=='{')break; right=i; for(i=0; s2[i]!='\\0'; i++) if(s2[i]=='}')break; leght=i; char t1[20]; char *ts1; ts1=t1; int j=right+1; intnum=0; while(j int k=0; while(s2[j]!='\\0'&&s2[j]!=','&&j char t2[20],t3[10]; char *tt2,*tt3; tt2=t2; tt3=t3; int p=0; while(ts1[p]!='\\0') { if(ts1[p]=='=') break; tt2[p]=ts1[p]; p++; } tt2[p]='\\0'; if(ts1[p]=='=') p++; int q=0; while(ts1[p]!='\\0') tt3[q++]=ts1[p++]; tt3[q]='\\0'; int r =0; r = atoi(tt3); if(t2[0]!='\\0') { if(r!=0) { num=r; printf(\printf(\num++; } else { printf(\printf(\num++; j++; } } } return 0; } } }
相关推荐: