Robot_PD 2015-12-02 02:17 采纳率: 50%
浏览 1491
已结题

程序输入3行数据运行正常,输入4行数据就运行不正常了,请大神解答?

本程序输入读入任意天数的浮点温度记录值,每天有6个记录,最后输入每天的平均值及每天的温度记录。请问,我输入3天的数据运行正常,为什么输入4天的数据运行就不正常了。多谢解答。
#define STDC_WANT_LIB_EXT1 1
#include
#include
#include
#include

#define BUF_LEN 100
#define READING_PER_DAY 6
#define INCR 1

int main(void)
{
char buf[BUF_LEN];
char *pstr=NULL;
char *ptr=NULL;
size_t day=0;
size_t capacity=0;
double **temperature=NULL;
double *result=NULL;
double average=0;

printf("Please enter 6 records of temperature for eachday.\n");
while(true)
{
    pstr=fgets(buf,BUF_LEN,stdin);
    if(!pstr)
    {
        printf("Error reading input.\n");
        return 1;
    }
    if(*pstr=='\n')
        break;
    if(day==capacity)
    {
        capacity+=INCR;
        temperature=realloc(temperature,capacity*sizeof(double*));
        result=realloc(result,capacity*sizeof(double));
    }
    *(temperature+day)=malloc(READING_PER_DAY*sizeof(double));
    for(size_t i=0;;++i)
    {
        temperature[day][i]=strtod(pstr,&ptr);
        if(pstr==ptr)
            break;
        else
            pstr=ptr;
        if(i>READING_PER_DAY)
        {
            printf("Please enter less than 6.\n");
            return 3;
        }
    }
    for(size_t j=0;j<READING_PER_DAY;++j)
    {
        result[day]+=temperature[day][j];
    }
    result[day]/=READING_PER_DAY;
    day++;
}
for(size_t k=0;k<day;++k)
{
    average+=result[k];
}
average/=day;
for(size_t k=0;k<day;++k)
{
    printf("Day %zd  %.1f  ",k+1,result[k]);
    for(size_t m=0;m<READING_PER_DAY;++m)
        printf("%-5.1f   ",temperature[k][m]);
    printf("\n");
    free(temperature[k]);
    temperature[k]=NULL;
}
free(result);
result=NULL;
free(temperature);
temperature=NULL;
printf("\n%.1f\n",average);
return 0;

}

  • 写回答

4条回答 默认 最新

  • zhaozhaoxia 2015-12-02 03:23
    关注

    *(temperature+day)=malloc(READING_PER_DAY*sizeof(double));
    开辟新的空间没有初始化。

    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿