| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2018 人关注过本帖
标题:大一编程题 求帮助
只看楼主 加入收藏
Wxp971031
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2016-11-11
结帖率:70%
收藏
已结贴  问题点数:5 回复次数:14 
大一编程题 求帮助
Input
输入数据有多组,每组占一行,每行包含一个实数。

Output
对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数。

Sample Input
123
-234.00

Sample Output
123.00
234.00


以上是题目要求,以下是我写的代码和我的思路,为什么运行不了,输入第二个值的时候直接停止了,也不提示什么错误,求帮助

#include <stdio.h>
int main()
{

    int i,j;
    double a[50];
    for(i=0;i<=50;i++)
    {
        scanf("%d",a[i]);
        if(a[i]=='\0')
        {
            break;
        }
    }
    for(j=0;j<=i;j++)
    {
        if(a[i]>=0)
        printf("%.2f",a[j]);
        if(a[i]<0)
        printf("%.2f",-a[j]);
    }
   
    return 0;
}
搜索更多相关主题的帖子: include double 绝对值 
2017-01-03 21:10
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
scanf 后面要跟地址  一般用&+变量名

DO IT YOURSELF !
2017-01-03 21:13
Wxp971031
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2016-11-11
收藏
得分:0 
回复 2楼 wp231957
对对对对  谢谢你  不过我改了之后运行的结果是一堆乱码,麻烦能告诉我错在哪里么
2017-01-03 21:17
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
你这double a[50] 我想不明白是怎么回事  题目也没要求要50个元素的数组啊

DO IT YOURSELF !
2017-01-03 21:24
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:1 
出现乱码的原因是数据类型与输入格式不匹配~~
double a[50];//这里i<=50会有可能导致越界~~~~
    for(i=0;i<=50;i++)
    {
        scanf("%d",&a[i]);//这里dobule~~输入要用%lf输入格式~~~
        if(a[i]=='\0')
        {
            break;
        }
    }


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-03 21:27
Wxp971031
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2016-11-11
收藏
得分:0 
回复 5楼 九转星河
麻烦问一下,现在出现的问题是我的想法是到我输入\t(我把\0改成了\t)的时候就可以跳出循环不输入了转入输出的循环,但事实是我换行以后根本不跳出输入的循环,请问是是为什么
2017-01-03 21:34
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
'\t'应该只是支持%c或者%s格式~~%d、%f或者%lf不支持'\t'~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-03 21:46
Wxp971031
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2016-11-11
收藏
得分:0 
回复 7楼 九转星河
那请问这道题目里,我必须输入的是数字,那如何实现跳出循环
2017-01-03 21:53
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10541
专家分:42927
注 册:2014-5-20
收藏
得分:1 
可用Ctrl+Z终止输入
#include <stdio.h>
int main()
{
    int i,j;
    double a[50];
    for(i=0; i<50; i++)
    {
        if (scanf("%lf", &a[i]) == EOF)
            break;
    }
    for(j=0; j<i; j++)
    {
        if(a[j]>=0)
            printf("%.2lf\n",a[j]);
        if(a[j]<0)
            printf("%.2lf\n",-a[j]);
    }
    return 0;
}
2017-01-04 07:39
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:1 
好吧,其实你的题目我有点没搞明白,但如果只是输入一个数字,然后输出它的绝对值的话,代码如下。

#include <stdio.h>
#include <math.h>
int main(void)
{
    double j;
    while(scanf("%lf",&j)==1)
    {
        printf("%.2lf\n",fabs(j));
    }
    return 0;
}

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-01-04 09:05
快速回复:大一编程题 求帮助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018885 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved