永发信息网

帮帮忙 做下这道程序改错题

答案:5  悬赏:80  手机版
解决时间 2021-06-03 21:19

:找出1到99之间的全部同构数并这些同构数之和。同构数是这样一组数,它出现在平方数的右边。例如5是25右边的数,25是是625右边的数,5和25都是同构数。程序中有三处错误代码,请指出并改正之.
注意:不得改变程序结构。

程序如下:

#include<stdio.h>
main()
{
int i,s;
s=i;
for(i=1;i<100;i++)
if(i*i%10==i&&i*i%100==i)
{
s=i;
printf("%3d\n",i);
}
printf("Sum is %d",s);
}

最佳答案

#include<stdio.h>
main()
{
int i,s;
s=0;
for(i=1;i<100;i++)
if(i*i%10==i||i*i%100==i)
{
s+=i;
printf("%3d\n",i);
}
printf("Sum is %d",s);
}



运行截图:

全部回答

#include<stdio.h> main() { int i; int s=0; for(i=2;i<100;i++) if(i*i%10==i||i*i%100==i) { s=s+i; //printf("%3d\n",i); printf("%d是%d的同构数!\n",i,i*i); } printf("Sum is %d\n",s);

return 0; }

1、在使用变量s前,请确保s已经做了初始化,否则s的值不确定 2、if中的判断有问题,不是用%求余,至少也应该形如:if( i*i-(i*i/10)*10==i || i*i-(i*i/100)*10==i) 3、看程序s是表示和,应该写作s+=i,而不是s=i

i*i%10==i&&i*i%100==i //这个判断是错误的,一位数应该对10取模,而2位数才应该对100取模。

s=i; //for中的s=i也是错误的,s表示i的累加值,应该改成s = s + i ;而在循环之前设 s = 0 ;

第5行 s=0;

第7行 if(i*i%10==i||i*i%100==i)

第9行 s+=i;

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
伍家岗区宜昌帝丽宾馆(东山大道)我想知道这个
K117次车
为什么班里同学都这样腼腆呢?
Internet Explorer8,为什么打开两个同一网址
为什么我空间装扮里没有植物啊?
谁能教我客家话啊?@#$%^*( 那里有买这样
冒险岛2转炎术士这么加点?
举报 湖北6区死亡将军PK用G有图有真相?
小孩的肚脐一次又一次的渗血(不多)是什么原因
南漳县襄樊中银富登村镇银行(水镜大道)在哪里
唐氏筛查是查什么的
谁知道像雨衣的那种衣服哪里有卖?可以平时穿
刚怀孕一个月内,怎么样流产最安全而且省钱
求windows7正式版的旗艦版
求最新连载的通灵王各角色的超灵体图
推荐资讯
我们能走到结婚那一步吗?
泰来县齐齐哈尔金百源KTV怎么去啊,谁知道地
人类是怎么演变的、假如是袁人演变,那袁人又
《刘淼*》是为一个小男孩未想好的名字,请大
请问孕妇可以喝蜂蜜吗
青山区武汉新东方地址有谁知道?有点事想过去
为什么我的QQ打开空间会弹出intemetexpiorer
有情感专家或心里专家吗
不能显示语言栏,键盘不能切换输入法的原因?
羊城通學生卡消磁了怎么辦
嘉禾人寿保单查询
谁有MP4 道勤RM1500的驱动 下载啊
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?