C语言实验手册

在三位整数(100~999)中寻找符合条件的整数,并以此从小到大存到数组当中,它既是完全平方数,又是两位数字相同,例如144,676等。

#include<stdio.h>
#include<math.h>
int isSquare(int n)
{
	if (n == (int)sqrt(n) *(int) sqrt(n))  //这里必须是将sqrt进行整形转化,sqrt(float * number),返回number的开平方数,返回值为浮点型
		return 1;
	else
		return 0;

}
int double_num(int n)
{
	int a, b, c;
	a = n / 100;
	b = n % 10;
	c = (n / 10) % 10;
	if (a == b || b == c || a == c)
		return 1;
	else
		return 0;
}


int main()
{
	int arr[900];
	int n = 0;
	for (int i = 100;i < 1000;i++)
	{
		if (isSquare(i) && double_num(i))
		{
			arr[n] = i;
			n++;
		}
	}
	for (int i = 0;i < n;i++)
	{
		printf("%d\n", arr[i]);
	}



	return 0;	
}

也可以通过函数嵌套实现:即满足给条件的整数通过所编制的函数返回

#include<stdio.h>
#include<math.h>
int isSquare(int n)
{
	if (n == (int)sqrt(n) *(int) sqrt(n))  //这里必须是将sqrt进行整形转化,sqrt(float * number),返回number的开平方数,返回值为浮点型
		return 1;
	else
		return 0;

}
int double_num(int n)
{
	int a, b, c;
	a = n / 100;     // 百位数
	b = n % 10;       //个位数
	c = (n / 10) % 10;   //十位数
	if (a == b || b == c || a == c)
		return 1;
	else
		return 0;
}
int Search(int n)
{

	if (isSquare(n) && double_num(n))
		return n;
	else
		return 0;
}

	
	


int main()
{
	int arr[900];
	int n = 0;
	for (int i = 100;i < 1000;i++)
	{
		arr[n]=Search(i);
		n++;
	}
	for (int i = 0;i < 900;i++)     // 仅仅是输出咱想要的  i到900就行了,多了就是没赋值的数组数据了
	{
		if(arr[i]!=0)
		printf("%d\n", arr[i]);
	}



	return 0;	
}
posted @ 2022-11-20 19:49  Tanگگ  阅读(167)  评论(0编辑  收藏  举报