在阅读代码前,先说一下这本书的在版编目(CIP)数据:C语言程序设计教程/黄迪明、余勤主编.--北京:国防工业出版社,2006.5 ISBN 7-118-04516-0
所有代码均在 VS2013 中成功运行。若有不妥之处,非常欢迎您提出问题,若能提出改进意见,不胜感激!
5.3 自守数是指一个数的平方的尾数等于该数本身的自然数。例如:25*25=625,,7*76=5776。
请求出20000以内的自守数。
#include<stdio.h>
void main()
{
printf(" 自守数是指一个数的平方的尾数等于该数本身的自然数。例如:25*25=625,,7*76=5776。请求出20000以内的自守数。\n\n");
int i = 0,n=1;
int a1[20001] = { 0 }, a2[20001] = { 0 }, *p1, *p2;
for ( i = 1; i <= 20000; i++)
{
a1[i - 1] = i ;
a2[i - 1] = i*i ;
}
p1 = a1;
p2 = a2;
printf("自守数有:\n");
for ( i = 1; i <= 20000; i++)
{
if ((*p1==*p2)||(*p1==*p2%10)||(*p1==*p2%100)||(*p1==*p2%1000)||(*p1==*p2%10000))
{
printf("%6d\t",*p1);
n = n + 1;
if (n%6==0)
{
printf("\n");
}
}
p1++;
p2++;
}
getch();
}
5.4 输入一个字符串,要求按照相反的顺序输出各个自费。例如,输入:AbcD,输出:DcbA。(这里要求用指针遍历各个字符)
#include<stdio.h>
#include<string.h>
void main()
{
printf(" 输入一个字符串,要求按照相反的顺序输出各个自费。例如,输入:AbcD,输出:DcbA。(这里要求用指针遍历各个字符)");
int len;
char c[100] = { '\0' };
char *p;
printf("请输入一个字符串:");
gets(c);
len = strlen(c);
p = &c[len-1];
printf("\n按相反顺序输出的各个字符为:");
for (; p >= c; p--)
{
printf("%c", *p);
}
getch();
}
5.5 找出两个字符串中相同的字符。
#include<stdio.h>
#include<string.h>
void main()
{
printf("找出两个字符串中相同的字符。\n\n");
int len = 0, k = 0, c3len = 0, i = 0;
char c1[100] = { '\0' };
char c2[100] = { '\0' };
char c3[100] = { '\0' };
printf("请输入一个字符串:");
gets(c1);
printf("请输入第二个字符串:");
gets(c2);
char *p = &c2;
len = strlen(c2);
printf("两个字符串中相同的字符为:");
for (; p <= &c2[len - 1]; p++)
{
if (strchr(c1, *p) >= 1)
{
c3len = strlen(c3);
if (c3len == 0)
{
printf("%c ", *p);
c3[0] = *p;
k = k + 1;
}
else
{
c3len = strlen(c3);
for (i = 0; i < c3len; i++)
{
if (strchr(c3, *p) >= 1)
{
continue;
}
else
{
c3[k] = *p;
k = k + 1;
printf("%c ", *p);
}
}
}
}
}
if (k == 0)
{
printf(" 0 个.");
}
getch();
}
业精于勤荒于嬉,行成于思毁于随。撸代码的你,好好加油吧!