1.检查某数是否为回文数:如12321,121,134431等等,如果是,返回1,否,返回-1 #include <stdio.h> #include <stdlib.h> void tranverse(unsigned long int a); int NumberLength(unsigned long int a); int power(int a); //检查某数是否为回文数:如12321,121,134431等等,如果是,返回1,否,返回-1 //思路:检查最高位和最低位是否相等,如等,去掉这两个数,如12321-->232-->3-->Yes; int flag; int main(void) { int a; scanf("%d",&a); tranverse(a); printf("%d/n",flag); return 0; } void tranverse(unsigned long int a) { unsigned int len = NumberLength(a); int one = a % 10; int high = a / power(len - 1); if(len == 1) { flag = 1; return; } else if(one == high) tranverse(a / 10 - high * power(len - 2)); else { flag = -1; return; } } int NumberLength(unsigned long int a) { int n = 1; while(a / 10 != 0) { a /= 10; n ++; } return n; } int power(int a) { int n = 10; if (a == 0) return 1; while(--a != 0) n *= 10; return n; } 2.删除某个字符串第i个字符后的j个字符,删除成功,返回1,否则返回-1 #include<stdio.h> //删除某个字符串第i个字符后的j个字符,删除成功,返回1,否则返回-1 int DeleteString(char s1[],int i,int j); int main(void) { char s1[100]; scanf("%s",s1); DeleteString(s1,5,6); printf("%s",s1); return 0; } int DeleteString(char s1[],int i,int j) { char *p = s1 + i,*q = s1 + i + j; int len = strlen(s1); if(q > s1 + len) { *p = '/0'; return -1; } else { while(q <= s1 + len) *p++=*q++; return 1; } }