100-999之间查找既是完全平方数(如11*11=121)又有其中的两个数相同(如121中有两个1),代码中为什么输出为零,求解数组的值传递详解。

fuli0315 2013-07-16 12:01:18
int main()
{
int i,j,a[3]={0};
int square;//定义开平方数变量
for (i=10;i<32;i++)
{
square=i*i;
for(j=0;j<3;j++)//把平方数中的每一位放置在数组a中
{
a[j]=square%10;
square=square/10;
}
if(a[0]==a[1]||a[0]==a[2]||a[1]==a[2])//判断任意两位是否相等并输出
printf("%d\n",square);
}
return 0;
}
...全文
586 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
FancyMouse 2013-07-16
  • 打赏
  • 举报
回复
因为你square=square/10做了三次以后变0了。直接输出i*i就行。
fuli0315 2013-07-16
  • 打赏
  • 举报
回复
引用 1 楼 FancyMouse 的回复:
因为你square=square/10做了三次以后变0了。直接输出i*i就行。
谢谢恩!下次不能再犯了。
fuli0315 2013-07-16
  • 打赏
  • 举报
回复
引用 4 楼 zjwangmin 的回复:
int main()
{
        int i,j,a[3]={0};
int square;//定义开平方数变量
for (i=10;i<32;i++)
{
square=i*i;
for(j=0;j<3;j++)//把平方数中的每一位放置在数组a中
{
a[j]=square%10;
square=square/10;  //这里循环完后square的值就是0了
}
if(a[0]==a[1]||a[0]==a[2]||a[1]==a[2])//判断任意两位是否相等并输出
                     printf("%d\n",i*i);   //打印的时候直接打印i*i就行了
}
return 0;
}
谢谢,很明白,请问怎样使用VC++6.0查看square变量地址的值,就像你查看得到#FF0000这个内存值。再次感谢!!!
zjwangmin 2013-07-16
  • 打赏
  • 举报
回复
int main()
{
        int i,j,a[3]={0};
int square;//定义开平方数变量
for (i=10;i<32;i++)
{
square=i*i;
for(j=0;j<3;j++)//把平方数中的每一位放置在数组a中
{
a[j]=square%10;
square=square/10;  //这里循环完后square的值就是0了
}
if(a[0]==a[1]||a[0]==a[2]||a[1]==a[2])//判断任意两位是否相等并输出
                     printf("%d\n",i*i);   //打印的时候直接打印i*i就行了
}
return 0;
}
「已注销」 2013-07-16
  • 打赏
  • 举报
回复
printf("%d\n",square); 这句改成 printf("%d\n", i*i);
lixiang201101 2013-07-16
  • 打赏
  • 举报
回复
int main()
{
	int i,j,bai,shi,ge,square;
	for(i=10;i<32;i++)
	{
		square=i*i;
		ge=square%10;
		shi=square/100;
		bai=square/10%10;
		if((ge==shi)||(ge==bai)||(shi==bai))
			printf("i=%d  square=%d\n",i,square);
	}
}
一个代码你把for(j=0;j<3;j++)//把平方数中的每一位放置在数组a中 { a[j]=square%10; square=square/10; }这部分改改

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧