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;
}