C语言简单问题。

C语言简单问题。哪里错了?为啥啥都输出不出来。... C语言简单问题。哪里错了?为啥啥都输出不出来。 展开
 我来答
xuzhouliuying
高粉答主

2017-12-03 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.5亿
展开全部

错误:

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;
}
清风明月流云
2017-12-03 · TA获得超过7198个赞
知道大有可为答主
回答量:1647
采纳率:85%
帮助的人:1539万
展开全部
循环节开始就不对,m=1的话就是重新赋值了,你输入的m就没了。。。换别的变量名试试
追答
还有s不能是整型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Y冰靥之星
2017-12-03 · TA获得超过226个赞
知道小有建树答主
回答量:117
采纳率:84%
帮助的人:26.1万
展开全部
#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就不行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幸运的丰一
2017-12-03
知道答主
回答量:20
采纳率:33%
帮助的人:6.1万
展开全部
不管m输入什么,到for时m都变为1
更多追问追答
追问
这不是开始循环吗?
追答
把s赋值为0试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oakwood
2017-12-03 · TA获得超过877个赞
知道小有建树答主
回答量:942
采纳率:77%
帮助的人:229万
展开全部
错的一塌糊涂:
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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式