65 date:2021.3.7
要点:
27638496 从个位开始
详细代码如下:
#include <stdio.h>
unsigned long fun(unsigned long n)
{
unsigned long x=0; int t;
while(n)
{
t=n%10;
/**********found**********/
if(t%2== 0)
/**********found**********/
x= 10 * x + t; //各个位上升1位
/**********found**********/
n=n/10;
}
return x;
}
void main()
{
unsigned long n=-1;
while(n>99999999||n<0)
{
printf("Please input(0<n<100000000): "); scanf("%ld",&n); }
printf("\nThe result is: %ld\n",fun(n));
}
要点:
详细代码如下:
#include <stdio.h>
void fun (long s, long *t)
{
int d;
long sl=1;
/************found************/
*t = 0;
while ( s > 0)
{
d = s%10;
/************found************/
if (d%2 != 0)
{
*t = d * sl + *t;
sl *= 10;
}
s /= 10;
}
}
void main()
{
long s, t;
printf("\nPlease enter s:"); scanf("%ld", &s);
fun(s, &t);
printf("The result is: %ld\n", t);
}
要点:
字符串连接函数strcat()的使用
不适用库函数的字符串连接方法
详细代码如下:
#include <stdio.h>
void fun(char p1[], char p2[])
{
/*
analyse:
字符串连接
*/
/* Standard Answer:
int i ,j;
for(i = 0; p1[i] != '\0'; i++);
for(j = 0; p2[j] != '\0'; j++)
p1[i++] = p2[j]; // 错误理解:为什么不是i , 必须是i++ 难道空字符也占了一个看不到的位置
//因为i自增 ,是为了将下一个字符存放在下一个位置
p1[i] = '\0';
*/
int i ,j,k=0;
char sum;
for(i = 0; p1[i] != '\0'; i++)
{
p1[k] = p1[i];
k++;
}
for(j = 0; p2[j] != '\0'; j++)
{
p1[k] = p2[j];
k++;
}
p1[k] = '\0'; //Dont't forget it !
}
void main()
{
char s1[80], s2[40] ;void NONO ();
printf("Enter s1 and s2:\n") ;
scanf("%s%s", s1, s2) ;
printf("s1=%s\n", s1) ;
printf("s2=%s\n", s2) ;
printf("Invoke fun(s1,s2):\n") ;
fun(s1, s2) ;
printf("After invoking:\n") ;
printf("%s\n", s1) ;
NONO() ;
}