Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
446 views
in Technique[技术] by (71.8m points)

c - SegFault after scanf?

#include <stdio.h>
#define TimeConverter 60
#define TempFormula time * time * 4 / time + 2 - 20

double HoursMinToTime(int hour, int min);

double Temperature(double time);

int main()
{
    int hour, min;
    double time, temperature;
    printf("Hours and minutes: ");
    scanf("%d %d", hour, min);
    //Segfault HERE
    time = HoursMinToTime(hour, min);
    temperature = Temperature(time);
    printf("After a %lf hour power failure, the frezer will be %lf degrees", time, temperature);
    return 0;
}
double HoursMinToTime(int hour, int min)
{
    double time = hour * min / TimeConverter;
    return time;              
}
double Temperature(double time)
{
    double temp;
    temp = TempFormula;
    return temp;
}

Why does this have a segmentation fault when after scanf?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

scanf requires the addresses of the variables to be passed to it. Replace your scanf by

scanf("%d %d",&hour,&min);

You should be good to go.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...