由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - 大虾们能帮我看看这个程序问题出在哪么?
相关主题
新手问为什么java不支持运算符重载呢增加点难度 java core
问个程序调用的问题NullPointerException 问题
Test your PC speed问个primitive type的问题
折腾了一天,实在是绝望了,请教请教一道java面试题 (转载)
请教一个简单的问题这段程序的输出是什么? 为什么
简单问题菜鸟问个简单的问题
interesting初学者code请教 (大牛莫取笑)
新手对switch语句的迷惑问一个java基础的初始化的问题,一直搞不明白 (转载)
相关话题的讨论汇总
话题: 输入话题: int话题: sum话题: total话题: 调用函数
进入Java版参与讨论
1 (共1页)
m***e
发帖数: 331
1
【程序39】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时
,调用函数1/1+1/3+...+1/n
public class lianxi39 {
public static void main(String[] args) {
System.out.print("请输入一个正整数:");
Scanner s=new Scanner(System.in);
int n=s.nextInt();
sum st=new sum();
System.out.println(st.sum(n));
}
}
class sum {
public static double sum(int n) {
double total=0;
if (n%2==0) {
for (int i=2; i<=n; i+=2) {
total+=1/i;
}
} else {
for (int i=1; i<=n; i+=2) {
total+=1/i;
}
}
return total;
}
}
程序运行的时候,除了输入1,输出结果为1.0外;输入任何其他数,结果均为0.0.
似乎是子程序带入的数据是int,但输出的结果是double造成的问题。
应该怎么改?
万分感谢!
u****s
发帖数: 2186
2
Change 1/i to 1./i

【在 m***e 的大作中提到】
: 【程序39】
: 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时
: ,调用函数1/1+1/3+...+1/n
: public class lianxi39 {
: public static void main(String[] args) {
: System.out.print("请输入一个正整数:");
: Scanner s=new Scanner(System.in);
: int n=s.nextInt();
: sum st=new sum();
: System.out.println(st.sum(n));

1 (共1页)
进入Java版参与讨论
相关主题
问一个java基础的初始化的问题,一直搞不明白 (转载)请教一个简单的问题
JAVA 考试题请教简单问题
在一个函数里把arraylist设为null 但是有问题interesting
what is the problem?新手对switch语句的迷惑
新手问为什么java不支持运算符重载呢增加点难度 java core
问个程序调用的问题NullPointerException 问题
Test your PC speed问个primitive type的问题
折腾了一天,实在是绝望了,请教请教一道java面试题 (转载)
相关话题的讨论汇总
话题: 输入话题: int话题: sum话题: total话题: 调用函数