C语言实验手册

时间:2022-11-20 20:08:06
#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;	
}