错误“无效初始值设定项”
问题描述:
这是将秒转换为secods-minutes-hours的程序。当我尝试编译它时,在“struct time_t malko = times(a);”中收到一个错误“Invalid initializer”请有人帮忙 P.S.我只能用结构体而不是指针或其他任何东西来做!错误“无效初始值设定项”
#include <stdio.h>
struct time_t {
float sec;
int min,hours;
};
struct time_t fastest_time (float times[3]){
int i;
int prom;
struct time_t malko;
for(i=0;i<3;i++) {
if(prom>times[i]) {prom=times[i];}
}
malko.sec=prom%60;
prom=prom/60;
malko.min=prom%60;
prom=prom/60;
malko.hours=prom%60;
return malko;
}
int main() {
float a[3]={3423,1234,34232};
struct time_t malko=times(a);
printf("\n %d %d %f", malko.hours, malko.min, malko.sec);
return 0;
}
答
struct time_t malko=fastest_time(a);
代替struct time_t malko=times(a);
?
次没有为main定义。 (这里输出:http://codepad.org/yvGhoHw4)
+0
非常感谢你的工作! –
+0
'time_t'已经在c库中定义。重新使用这个名字会导致问题在后面。 –
(1)什么是'times'这里'struct time_t malko = times(a);'?我没有看到一个名为'times'的函数(2)'prom'在'for'循环的第一次迭代中初始化,调用UB –
您知道'time_t'是*标准类型吗?尽管结构标签(名称)存在于自己的名称空间中,但将标准类型使用相同的名称将会导致混淆。 –
如果您尝试使用函数参数名称作为实际函数名称,那么您绝对和拼命[应该找到一本好初学者书](http://stackoverflow.com/questions/562303/the-definitive-c-book-指南和列表),并从头开始。如果您使用'times'是因为它是'faster_time'函数中的参数名称,那么您将如何尝试调用带有两个或更多参数的函数? –