鱼C论坛

 找回密码
 立即注册
查看: 4030|回复: 19

怎么解决C语言万年历的指针错误

[复制链接]
发表于 2019-9-16 12:33:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
不知道这个错误该怎么改
char*week[] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
[Error] expected initializer before 'char'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-9-16 12:34:27 | 显示全部楼层
求助大佬们
结课作业就这一个错不知道怎么搞了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-16 12:40:59 | 显示全部楼层
本帖最后由 人造人 于 2019-9-16 12:43 编辑

你怎么知道是这一行的问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-16 15:00:21 | 显示全部楼层
#include <stdio.h>

int main(void)
{
        char week[][10] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
        printf("%s\n" , week[3])                                                                  ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-16 17:34:01 | 显示全部楼层
人造人 发表于 2019-9-16 12:40
你怎么知道是这一行的问题?

报错一直是这一栏
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-16 17:34:44 | 显示全部楼层

这个改了有要求重新定义主函数  int main  换成void  main也不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-16 17:35:37 | 显示全部楼层
自己改了一些 结果出这个
[Error] ld returned 1 exit status
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-16 17:35:39 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-16 17:55:24 | 显示全部楼层
Chenglin 发表于 2019-9-16 17:34
这个改了有要求重新定义主函数  int main  换成void  main也不行

      不要转述,把编译出来的错误信息文本直接贴出来看看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-17 01:22:13 | 显示全部楼层
楼主的这条语句并没有半点错误,可检查下是不是其它 语句忘加分号了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-17 21:04:28 | 显示全部楼层
程序现在运行不出查询某年某月某日的结果
void whatisit()
{
        int y,m,d,s,k=1,sum,n,i;
        char yn;
        int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        while(k)
        {
                printf("请依次输入年,月,日:\n");
                scanf("%d,%d,%d",&y,&m,&d);
                s=0;
                for(i=1;i<m;i++)
                        s=s+a[i];
                s=s+d;
                if(IsLeapYear(y)&&m>2)
                        s=s+1;
                sum=s;
                n=(y-1+(y-1)/4-(y-1)/100+(y-1)/400+sum)%7;
                printf("这天是%s\n",week[n]);
                printf("是否继续查询(Y/N)?");
                scanf("%c",&yn);getchar();               
                if(yn=='y' || yn=='Y')k=1;
                else k=0;
        }
}
运行出来就是一行空白
然后结束
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-17 21:04:58 | 显示全部楼层
这是前面的定义
#include<stdio.h>
void screen();
void whatisit();
void leapyear();
void printyearday();
int IsLeapYear(int);
int whatisita(int,int);
int everymonth(int,int);
void printmonth(int,int);
void printmonthday();

const char*week[] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};

int main()
{
screen();
}
/*万年历查询主界面*/
void screen()
{
        int n;
        while(1)
                {
                printf(" 万年历查询程序:\n");
                printf("1.查询某年某月某日是星期几\n");
                printf("2.查询某年是否是闰年\n");
                printf("3.打印某年的全年日历\n");
                printf("4.查询某月的最大天数\n");
                printf("5.退出\n");
                printf("请输入要查询的选项:");
                scanf("%d",&n);
                switch(n)
                        {       
                                case 1:whatisit();break;
                                case 2:leapyear();break;
                                case 3:printyearday();break;
                                case 4:printmonthday();break;
                                case 5:return;
                                default:printf("你输入错误,请按要求输入!\n");break;
                        }
                }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-17 21:06:17 | 显示全部楼层
输入查询某年某月某日的日期   就不断刷上面写的主界面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-18 03:10:28 From FishC Mobile | 显示全部楼层
const char*week[] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
这是什么操作?

char *str= "string"这是用指针定义的常量字符数组。
char ty[]= "ghkkl";
char *str[] = ty;这是数组指针。
char (*str)[]这是指针数组。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-18 03:13:45 From FishC Mobile | 显示全部楼层
要是为了定义二维数组还不如用char week[][]写法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-18 10:18:38 | 显示全部楼层
......
printf("这天是%s\n",week[n]);
printf("是否继续查询(Y/N)?");
getchar();        //增加这行就可以了
scanf("%c",&yn);getchar();               
if(yn=='y' || yn=='Y')k=1;
else k=0;
......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-19 19:23:31 | 显示全部楼层
/*查询某月最大天数*/
int everymonth(int year,int month)
{
        int s;
        static int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        s=a[month];
        if(IsLeapYear(year)&&month==2)
        s=s+1;
        return s;
}
/*打印某年的某月最大天数函数*/
void printmonthday()
{
        int y,m,value,k=1;
        char yn;
        while (k)
        {
                printf("请输入查询的年份,月份\n:");
                scanf("%d,%d",&y,&m);
                value=everymonth(y,m);
                printf("%d年%d月的最大天数为%d:\n",y,m,value);
                printf("是否继续查询(Y/N)?");
                scanf("%c",&yn);
                getchar();
                if(yn=='y'||yn=='Y')k=1;
                else k=0;
        }

}
打印某月最大天数给不出结果啊  一直没改出来   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-19 19:24:44 | 显示全部楼层
Process exited after 6.147 seconds with return value 3221225477
提示是这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-19 20:51:24 | 显示全部楼层
本帖最后由 superbe 于 2019-9-19 20:53 编辑

/*打印某年的某月最大天数函数*/
void printmonthday()
{
        int y,m,value,k=1;
        char yn;
        while (k)
        {
                printf("请输入查询的年份,月份:\n");
                scanf("%d,%d",&y,&m); // %d,%d中间原来是全角逗号,输入时注意要输入全角。我改成半角了。
                value=everymonth(y,m);
                printf("%d年%d月的最大天数为%d:\n",y,m,value);
                printf("是否继续查询(Y/N)?");
                getchar();    //增加了这行
                scanf("%c",&yn);
                getchar();
                if(yn=='y'||yn=='Y')k=1;
                else k=0;
        }

}

ymd.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-19 21:02:54 | 显示全部楼层
谢谢各位大佬  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-4 09:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表