《C语言程序设计教程》(主编黄迪明、余勤)第五章课后习题答案

       在阅读代码前,先说一下这本书的在版编目(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();
}


                                                           业精于勤荒于嬉,行成于思毁于随。撸代码的你,好好加油吧!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值