| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 475 人关注过本帖
标题:实在想不懂,望纠错,本意是读入任意天数,每天有6个记录,输出每天的记录, ...
只看楼主 加入收藏
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
结帖率:97.22%
收藏
已结贴  问题点数:30 回复次数:6 
实在想不懂,望纠错,本意是读入任意天数,每天有6个记录,输出每天的记录,在单独一行上输出平均值。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define A 365

int main(void)
{
    char string[A];
    char *pS[A]={NULL};
    int i=0;
    int days=0;
    int j=0;
    double n=0.0;

    printf("请写出你要输入的天数:");
    scanf("%d",&days);
    for(i=0;i<days;i++)
    {
        printf("请输入第%d天的温度记录:\n",i+1);
         fgets(string,A,stdin);
            string[strlen(string)-1]='\0';
        while(j<6)
        {
            pS[j]=(char*)malloc(strlen(string)+1);
            if(pS[j]==NULL)
            {
                printf("内存失败,程序终止\n");
                return 1;
            }
            strcpy(pS[j++],string);
        }
    }
        j=0;
        for(i=0;i<days;i++)
        {
        printf("    第%d天\n",i+1);
        while(j<6*(i+1))
        {
            if((j+1)%3==0)
                printf("\n");
        printf("%4s",pS[j++]);
        }
        }
        printf("\n\n");
        j=0;
        for(i=0;i<days;i++)
        {
            n=0;
            for(;j<6*(i+1);j++)
            {
            n+=atof(pS[j]);
            free(pS[j]);
            pS[j]=NULL;
            }
        printf("\n第%d天的平均温度为%0.1f\n",i+1,n/(double)6);
        }
    return 0;
}
搜索更多相关主题的帖子: 平均值 include 记录 
2012-11-01 23:25
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
希望能加以修改并解释其意义,非常感谢

I have not failed completely
2012-11-01 23:26
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:15 
        printf("请输入第%d天的温度记录:\n",i+1);
        fflush(stdin);
        fgets(string,A,stdin);

加一句代码  你再继续调试吧   感觉你的逻辑思维比较乱

DO IT YOURSELF !
2012-11-02 09:18
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:15 
scanf("%d",&days);
这里带了一个回车进去,直接导致fgets(string,A,stdin);
拿到一个回车就结束了,解决方法
或者用
scanf("%d",&days);
fflush(stdin);
或者加一句
scanf("%d",&days);
getchar();
后面每一天里面,你并没有6次输入的语句,这样malloc那段拿到的数据都是重复的。

[ 本帖最后由 pauljames 于 2012-11-2 12:47 编辑 ]

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-11-02 12:46
zxd543
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:内蒙古
等 级:贵宾
威 望:17
帖 子:453
专家分:2351
注 册:2012-4-12
收藏
得分:0 
数据接收问题 学习了

马马虎虎 不吝赐教 我是路过蹭分滴
2012-11-02 15:01
qq130000033
Rank: 2
等 级:论坛游民
帖 子:12
专家分:21
注 册:2012-11-2
收藏
得分:0 
VC技术资料下载集合(长期更新)
http://bbs.
2012-11-02 15:13
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define A 365

int main(void)
{
    char string[A];
    char *pS[A]={NULL};
    int i=0;
    int days=0;
    int j=0;
    double n=0.0;

    printf("请写出你要输入的天数:");
    scanf(" %d",&days);
    getchar();
    for(i=0;i<days;i++)
    {
        printf("请输入%d天温度记录:\n",i+1);
        while(j<6*(i+1))
        {
             fgets(string,A,stdin);
            string[strlen(string)-1]='\0';
            pS[j]=(char*)malloc(strlen(string)+1);
            if(pS[j]==NULL)
            {
                printf("内存失败,程序终止\n");
                return 1;
            }
            strcpy(pS[j++],string);
        }
    }
        j=0;
        for(i=0;i<days;i++)
        {
        printf("The %d day%c:\n",i+1,i==0?' ':'s');
        while(j<6*(i+1))
        {
        printf("%4s",pS[j++]);
        if(j%3==0)
                printf("\n");
        }
        }
        printf("\n\n");
        j=0;
        for(i=0;i<days;i++)
        {
            for(;j<6*(i+1);j++)
            {
            n+=atof(pS[j]);
            free(pS[j]);
            pS[j]=NULL;
            }
            printf("第%d天的平均温度为%0.1f\n",i+1,n/(double)6);
            n=0;        
        }
            return 0;
}


我已经懂了,也通过百度了解到了scanf的输出与getchar()函数的一些用法,
这个程序我改了一下,可以运行了,但是显得有些笨拙,
如果有时间的话希望能给了比较简洁的实例,谢谢

I have not failed completely
2012-11-02 21:13
快速回复:实在想不懂,望纠错,本意是读入任意天数,每天有6个记录,输出每天的 ...
数据加载中...
 
   



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

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