|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目描述
将正整数m
和n
之间(包括m
和n
)能被17整除的数累加输出。
输入描述
一行两个正整数m
和n
,以一个空格隔开,0<m<n<1000
。
输出描述
一行一个整数,表示累加得到的结果。
- #include<stdio.h>
- int main()
- {
- int m,n;
- scanf("%d%d",&m,&n);
- int i,ans=0;
- for(i=m;i<=n;i++)
- {
- if(17%i==0)ans+=i;
- }
- printf("%d",ans);
- }
复制代码
这个程序的目的是找出在m和n之间(包括m和n)能被17整除的数,并将这些数累加。然而,程序中的判断条件写错了,导致输出结果为0。
在这个for循环中:
- for(i=m;i<=n;i++)
- {
- if(17%i==0)ans+=i;
- }
复制代码
这里的判断条件 if(17%i==0)是错误的,这个条件是在检查17是否能被i整除,而不是检查i是否能被17整除。这就是为什么你的输出是0,因为在m和n的范围内,没有任何一个数能让17整除。
正确的判断条件应该是 if(i%17==0),这样就能正确地检查i是否能被17整除。所以,你的代码应该修改为:
- #include<stdio.h>
- int main()
- {
- int m,n;
- scanf("%d%d",&m,&n);
- int i,ans=0;
- for(i=m;i<=n;i++)
- {
- if(i%17==0)ans+=i;
- }
- printf("%d",ans);
- }
复制代码
这样,程序就能正确地找出在m和n之间能被17整除的数,并将这些数累加。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
|
|