| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 823 人关注过本帖
标题:下面这个程序 不知道在函数处出现了什么问题
只看楼主 加入收藏
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
结帖率:25%
收藏
 问题点数:0 回复次数:8 
下面这个程序 不知道在函数处出现了什么问题
下面带颜色的地方;
系统提示:miss";"befor type
        'j':undeclared identifier
当我把主函数的指针名字该成其他的时候例如 pointer,另一个函数中的指针p就不管用总感觉int panduan(struct time*p)中对p的定义根本没起作用
#include "stdio.h"
int mon1[]={31,28,31,30,31,30,31,31,30,31,30,31},
     mon2[]={31,29,31,30,31,30,31,31,30,31,30,31};
main()
{int panduan(struct time*);
 struct time
 {int year;
 int month;
 int day;
 };     
 struct time n;int i,sum=0;
 struct time*p;
 p=&n;
 printf("请输入年月日:");
 scanf("%d%d%d",&p->year,&p->month,&p->day);
 if(panduan(p));
    {if((*p).year%4==0&&(*p).year%100!=0||(*p).year%400==0)
      for(i=0;i<(*p).month;i++)
         {if(i!=0)
             sum=sum+mon2[i];
          sum=sum+(*p).day;}
     else  
      for(i=0;i<(*p).month;i++)
         {if(i!=0)
             sum=sum+mon1[i];
          sum=sum+(*p).day;}
     printf("这是%d年的第%d天!\n",p->year,sum);     
}
int panduan(struct time*p)
{int j;

 if(p->month>12||p->month<1)
    {printf("月分输入错误!\n");j=0;}
 else   
  if(p->year%4==0&&p->year%100!=0||p->year%400==0) //判断闰年//  
     if(p->day<=0||p->day>mon2[p->month-1])
         {printf("%d年%d月没有这一天!\n",p->year,p->month);
          j=0;}
     else j=1;
  else
     if(p->day<=0||p->day>mon1[p->month-1])
          {printf("%d年%d月没有这一天!\n",p->year,p->month);
         j=0;}
      else j=1;   
 if(j)
    return(1);
 else
    return(0);
}

[[italic] 本帖最后由 llp108 于 2008-1-1 21:52 编辑 [/italic]]
搜索更多相关主题的帖子: int struct time 
2008-01-01 14:58
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
自定义函数上面少了‘}’,结构体定义的位置不对!要定义在main函数之前!
2008-01-01 15:14
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
收藏
得分:0 
好象没少'}'吧,结构体我也试过放在外面但没用
2008-01-01 15:18
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
程序代码:
#include <stdio.h>
int mon1[]={31,28,31,30,31,30,31,31,30,31,30,31},
    mon2[]={31,29,31,30,31,30,31,31,30,31,30,31};
struct time
{
    int year;
    int month;
    int day;
};
int main()
{
    int panduan(struct time*);
    struct time n;int i,sum=0;
    struct time*p;
    p=&n;
    printf("请输入年月日:");
    scanf("%d%d%d",&p->year,&p->month,&p->day);
    if(panduan(p))
    {
        if((*p).year%4==0&&(*p).year%100!=0||(*p).year%400==0)
              for(i=0;i<(*p).month;i++)
            {
                sum=sum+mon2[i];
                  sum=sum+(*p).day;
            }
         else
              for(i=0;i<(*p).month;i++)
             {
                sum=sum+mon1[i];
                  sum=sum+(*p).day;
            }
         printf("这是%d年的第%d天!\n",p->year,sum);
    }
}

int panduan(struct time*p)
{
    int j;
    if(p->month>12||p->month<1)
    {
        printf("月分输入错误!\n");
        j=0;
    }
    else
          if(p->year%4==0&&p->year%100!=0||p->year%400==0) //判断闰年//
            if(p->day<=0||p->day>mon2[p->month-1])
            {
                printf("%d年%d月没有这一天!\n",p->year,p->month);
                 j=0;
            }
            else
                j=1;
          else
             if(p->day<=0||p->day>mon1[p->month-1])
             {
                printf("%d年%d月没有这一天!\n",p->year,p->month);
                 j=0;
            }
             else
                j=1;
    if(j)
        return(1);
    else
        return(0);
}
能通过调试了!看看能不能达到你的要求了!两点错的地方改过来了!

[[italic] 本帖最后由 無邪的睡脸 于 2008-1-1 15:24 编辑 [/italic]]
2008-01-01 15:18
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
自定义函数上一行的那个'}'和if(panduan(p))后的'{'对应的!main()函数结束的括号忘了吧!还有,if(panduan(p));后面是不是多了分号?估计是达不到你的目的的!
2008-01-01 15:23
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
收藏
得分:0 
有一个疑问 结构提为什么不能防在主函数内,
我传递的仅是一个指针啊,
比如这是一个数组的话,数组的定义就可以在主函数内,
2008-01-01 17:13
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你提的问题我也不知道为什么呢,把你的帖子顶一下,高手路过的时候我也能学到知识了.帮你顶一下啊
2008-01-01 19:28
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
我的理解是:结构体是自定义的,它的作用域是从定义的地方起到函数结束,所以定义在主函数内,只能在主函数内起作用!而定义在函数外,是从定义的地方起到文件结束!和全局变量,局部变量类似!不知道这样说有没有错!下楼的请指正!
2008-01-01 19:54
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
收藏
得分:0 
如果是这样的话,那么结构体句没必要用指针了,因为他总是在全局范围内定义
2008-01-01 21:54
快速回复:下面这个程序 不知道在函数处出现了什么问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016896 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved