C语言实现子序列之和问题

#include<stdio.h>
int main(){
int n,m;
while(scanf("%d %d\n",&n,&m)==2&&!(n==0&&m==0)){
if(n<m&&n<10e6&&m<10e6){
double sum=0.0;
for(;n<=m;n++){
sum+=1.0/n*n;
}
printf("%.5f\n",sum);
}
else{
printf("Data is not proper.");
}
}
printf("end of programme.");
return 0;
}

,子序列之和问题,保留5位小数,结束标记为n=m=0.输入包含多种多组数据。望指出错误。

化糖
浏览 1962回答 3
3回答

留得枯荷听雨声lyx

说两个小地方吧,一时scanf("%d%d"),这个地方是输入,不要加换行,否则输入会有问题,输入的时候避免使用这些格式控制字符,容易出错,第二个是sum+=1.0/(n*n),这个地方注意加上括号,还有我改了一下while 的条件,这样写更通用吧
打开App,查看更多内容
随时随地看视频慕课网APP