展开全部
错误:
1、读取m的值,又关于m循环,思路混乱。
2、1/m是整型运算,对于大于1的m,1/m都等于0
3、s定义为整型,而且没有赋初始值,得不到正确值,就算输出时按浮点型输出,结果也不正确。
一个小程序,错误百出,语句错了一半,算法全错。
修改如下:
#include <stdio.h>
int main()
{
int i,m;//增加定义变量i
float s=0;//s定义为浮点型,并赋初始值0
printf("Please input m:\n");
scanf("%d",&m);
for(i=1;i<=m;i++)//改为关于i的循环
s+=1.0/i;//1/m改为1.0/i
printf("%f",s);
return 0;
}
展开全部
循环节开始就不对,m=1的话就是重新赋值了,你输入的m就没了。。。换别的变量名试试
追答
还有s不能是整型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
float s=0;
int m=0;
printf("please input m: \n");
scanf("%d", &m);
for(int n=1; n<=m; n++)
{
s+=1.0/n;
}
printf("%f", s);
return 0;
}
有问题请@我
追问
我想问下为啥 我改成了s+=1.0/n 就可以了呢?不加.0就不行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不管m输入什么,到for时m都变为1
更多追问追答
追问
这不是开始循环吗?
追答
把s赋值为0试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错的一塌糊涂:
1、缺少定义循环控制变量;
2、错用循环控制变量;
3、s没有赋初值;
4、s的类型定义错误;
5、表达式1/m的被除数(1)和除数(m)都是整型,运算结果恒为0;
6、除数因子错为m;
7、输出没有以换行符结束,会造成程序运行结束后的系统提示覆盖掉输出内容;
下面看我的:
#include <stdio.h>
void main() {
int n,m;
float s=0;
printf("Please input m \n");
scanf("%d",&m);
for( n=1; n<=m; n++) s+=1.0/n;
printf("%f\n",s);
}
1、缺少定义循环控制变量;
2、错用循环控制变量;
3、s没有赋初值;
4、s的类型定义错误;
5、表达式1/m的被除数(1)和除数(m)都是整型,运算结果恒为0;
6、除数因子错为m;
7、输出没有以换行符结束,会造成程序运行结束后的系统提示覆盖掉输出内容;
下面看我的:
#include <stdio.h>
void main() {
int n,m;
float s=0;
printf("Please input m \n");
scanf("%d",&m);
for( n=1; n<=m; n++) s+=1.0/n;
printf("%f\n",s);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询