一段简单的C程序,怎么出错了。疑惑。
代码:
#define SEC_PER_MIN 60 //每分钟的秒数
int main(void)
{
int sec,min,left;
printf("Convert seconds to minutes an seconds!\n");
printf("Enter the number of seconds ( <=0 to quit ):\n");
scanf("%d",&sec); //读入秒数
while(sec>0)
{
min = sec / SEC_PER_MIN; //截尾后得到的分钟数
left = sec % SEC_PER_MIN; //剩下的秒数
printf("% seconds is %d minutes, %d seconds.\n",sec,min,left);
printf("Enter next value( <=0 to quit ):\n");
scanf("%d",&sec);
}
printf("Done!\n");
return 0;
}
调试信息如下:
构建以确保源文件是最新的
构建成功
选择目标:
Debug
Adding source dir: D:\Program\C\projects\653\
Adding source dir: D:\Program\C\projects\653\
Adding file: bin\Debug\653.exe
启动调试器:
完成
登记了的新类型: wxString
登记了的新类型: STL String
登记了的新类型: STL Vector
正在设置断点
调试器名称及版本: GNU gdb 6.8
Child process PID: 3904
位于 D:\Program\C\projects\653\main.c:21
继续...
Program received signal SIGSEGV, Segmentation fault.
在 wscanf () (C:\WINDOWS\system32\msvcrt.dll)里
俺是新手,求帮忙
[解决办法]
printf("% seconds is %d minutes, %d seconds.\n",sec,min,left);
应该是:
printf("%d seconds is %d minutes, %d seconds.\n",sec,min,left);