c语言 求和1+1/2+1/3+...+1/n,但如果n是负数的话,需要重新输入
题目要求:输入一个n,求1+1/2+...+1/n的和如果n是负数,则输出“请输入一个正数:”然后重新开始最后输出为“总和为...”我主要不会第二部分。我是这样写的,但总...
题目要求:
输入一个n,求1+1/2+...+1/n的和
如果n是负数,则输出“请输入一个正数:” 然后重新开始
最后输出为 “总和为...”
我主要不会第二部分。
我是这样写的,但总有error
#include <stdio.h>
int main()
{
float n, sum=0;
printf ("输入一个数字计算:\n");
scanf ("%f",&n);
if (n < 0)
{ printf(“请输入一个正数: ");
scanf("%f",&n);
for (int i=1; i<=n; i++){
sum = sum + 1/i;}
printf("最后的和是: %f",sum);
}} 展开
输入一个n,求1+1/2+...+1/n的和
如果n是负数,则输出“请输入一个正数:” 然后重新开始
最后输出为 “总和为...”
我主要不会第二部分。
我是这样写的,但总有error
#include <stdio.h>
int main()
{
float n, sum=0;
printf ("输入一个数字计算:\n");
scanf ("%f",&n);
if (n < 0)
{ printf(“请输入一个正数: ");
scanf("%f",&n);
for (int i=1; i<=n; i++){
sum = sum + 1/i;}
printf("最后的和是: %f",sum);
}} 展开
4个回答
展开全部
知道你的意思了,你的错误,要我指出来的话,再追问
给出我的代码
#include <stdio.h>
int main()
{
int i,n; //n要改为int型,因为在循环里面,有i<n的表达式,保持类型一致
float sum=0;
printf ("输入一个数字计算:\n");
scanf ("%f",&n);
while (n < 0)
{ printf("请输入一个正数: ");
scanf("%f",&n);
}
for ( i=1; i<=n; i++)
{
sum = sum + (float)1/i; //这里要强制类型转换,不然1/i 的结果为0
}
printf("最后的和是: %f",sum);
return 0; //要给出返回值,因为你的main函数是int型
}
给出我的代码
#include <stdio.h>
int main()
{
int i,n; //n要改为int型,因为在循环里面,有i<n的表达式,保持类型一致
float sum=0;
printf ("输入一个数字计算:\n");
scanf ("%f",&n);
while (n < 0)
{ printf("请输入一个正数: ");
scanf("%f",&n);
}
for ( i=1; i<=n; i++)
{
sum = sum + (float)1/i; //这里要强制类型转换,不然1/i 的结果为0
}
printf("最后的和是: %f",sum);
return 0; //要给出返回值,因为你的main函数是int型
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
float sum=0;
int n;//严格要求自己,你该是整型
printf ("输入一个数字计算:\n");
scanf ("%d",&n);//对应修改为%d
while(n < 0)//用while的意思是只要是负数就重输,if只能判断一次。
{
printf(“请输入一个正数: ");
scanf("%d",&n);
}//while在这里结束
for (int i=1; i<=n; i++){
sum = sum + 1.0/i;}//之所以结果错误是因为1是整型,i也是整型,所以1/i是整数,导致结果不多,所以用1.0除才对。
printf("最后的和是: %f",sum);
}
希望可以帮到你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
bool flag = true;
while (flag)
{
printf("输入一个数字计算:\n");
scanf("%f", &n);
if (n<0)
{ printf("请输入一个正数:");}
else
flag = false;
//如需考虑n=0的情况你自己酌情处理
}
... //其余部分
while (flag)
{
printf("输入一个数字计算:\n");
scanf("%f", &n);
if (n<0)
{ printf("请输入一个正数:");}
else
flag = false;
//如需考虑n=0的情况你自己酌情处理
}
... //其余部分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1+1/(n+1)
循环n-1 次,
要循环, 找循环语句
循环n-1 次,
要循环, 找循环语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询