当前位置: 代码迷 >> C语言 >> [求助]结构的问题
  详细解决方案

[求助]结构的问题

热度:405   发布时间:2006-12-06 23:35:28.0
[求助]结构的问题

帮忙看一下,有两个问题:
1、这个程序哪里有问题啊?为什么编译通过了,但却运行不了了?

#include<stdio.h>
struct
{
int hour;
int min;
} time;
int main()
{

printf("Please input the hour:");
scanf("%d",&time.hour);
printf("\nPlease input the min:");
scanf("%d",&time.min);

if(time.min!=59)
time.min+=1;
else
{
time.hour+=1;
time.min=0;
}
printf("The one min later is:%.2f:1%.2f\n",time.hour,time.min);
return 0;
}

2、
struct
{
int hour; 这是对的!
int min;
} time; 为什么这里的time若放到struct的后面就错了呢?书上不是说两者是一样的吗?

struct time
{
int hour; 这样就错了!
int min;
} ;

搜索更多相关的解决方案: 结构  

----------------解决方案--------------------------------------------------------
结构体定义完后,,还要在主函数定义一个对象啊,,time time1;
----------------解决方案--------------------------------------------------------
先来解释一下结构与结构类型变量:
struct 结构名
{
成员表列
};
这是定义一个结构的一般形式为;

struct stu // stu 是结构名
{
int num;
char name[20];
char sex;
float score;
};
struct stu boy1,boy2; // boy1,boy2是结构类型变量的说明
这是结构类型变量的说明,
因此结构与结构类型变量是两个不同的概念。

struct
{
int hour;
int min;
} time;
中time是结构类型变量,这是属于直接说明结构变量。
如果把time若放到struct则变成了一个结构的一般定义形式,缺少了结构变量,因为缺少了结构变量肯定会出错。

修改后的程序:

#include<stdio.h>
struct str // 结构定义
{
int hour;
int min;
};
int main()
{
struct str time; // 结构类型变量说明
printf("Please input the hour:");
scanf("%d",&time.hour);
printf("\nPlease input the min:");
scanf("%d",&time.min);

if(time.min!=59)
time.min+=1;
else
{
time.hour+=1;
time.min=0;
}
printf("The one min later is:%.2f:1%.2f\n",time.hour,time.min);
return 0;
}


----------------解决方案--------------------------------------------------------
  相关解决方案