C语言 完全平方数

在三位整数(100~999)中寻找符合条件的整数并依次从小到大存入数组中,特定条件为它既是完全平方数,又有两位数字相同,例如:144、676等。要求把满足该条件的整数及其个数通过所编制的函数返回。谢谢高手们,急!!!
不好意思,有能用TC运行出来的么,都有些错误,有些着急,谢谢啊!~!

之前的是不对,对题理解错误,谢谢一楼的指正哈

修改后如下:

#include <stdio.h>

int fun(int array[])

{

 int i = 0;

 int k = 0;

 int m = 0, n = 0, l = 0;

 for (i = 10; ; i++)

 {

  if (100 < i*i && i*i <= 999 )

  {

  m = (i*i)/100;

  n = ((i*i)%100)/10;

  l = (i*i)%10;

  if (m == n || m == l || n == l)

  array[k++] = i*i;

  }

  if (i*i > 999) break;

 }

 return k;

}

void main()

{

 int array[30] = {0};

 int count = 0;

 int i = 0;

 

 count = fun(array);

         printf("符合条件的数如下:");

 for (i = 0; i < count; i++)

 {

  printf("%d ", array[i]);

 }

 printf("\n");

 printf("符合条件的数的个数 = %d\n", count);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-20
楼上答案错误,没有判断两位数字相同!
第2个回答  2010-01-20
//我的想法是先求100到999的完全平方数在对它进行下一个条件的筛选
//平方在100到999的数 为10到31之间
#include "stdafx.h"
#include <iostream>
using namespace std;

const int NUM = 22;
int array[NUM] = {0};
int k = 0;

//进行第一次筛选
void FirstSelect()
{
for(int i = 10; i <= 31; i++)
{
array[i - 10] = i * i;
}
return;
}

//进行第二次筛选
int* SecondSelect()
{
int a;
int b;
int c;
int d;
for(int i = 0; i < NUM; i++)
{
d = array[i];
a = array[i]%10;
array[i] /= 10;
b = array[i]%10;
array[i] /= 10;
c = array[i]%10;
if(a == b || b == c || a == c)
{
array[k] = d;
k++;
}
}
return array; //返回符合条件的数所在数组
}
//打印结果
void Print()
{
cout << "符合条件的数有:" << k << "个\n";
for(int i = 0; i < k; i++)
{
cout << array[i] << endl;
}
return;
}
int main(int argc, char* argv[])
{
FirstSelect();
SecondSelect();
Print();
return 0;
}
C++6.0编译通过,不好意思我用的是C++,不过把输入输出语句改该就行了.
都已经写得差不多了,用其他编译器你也应该会改了吧. 难道你一点不会?
第3个回答  2010-01-20
#include<stdio.h>
#include<math.h>
int wqpf(void);
void main()
{
int i;
i=wqpf();
printf("有%d个",i);
}
int wqpf(void)
{
int a,i,g,s,b,sum(0);
for(a=100;a<=999;a++)
{
i=(int)(sqrt((float)a));
if(i*i==a)
{
g=a%10;
s=a/10%10;
b=a/100;
if(g==s||g==b||b==s)
{
printf("%d\n",a);
sum++;
}
}
}
return sum;
}
顺便问下,你是学生吗?
第4个回答  2010-01-20
二楼的,你试了吗?

i * i这个语句你明白吗。你说i和i不相等吗?还用的着再判断相等吗?
相似回答