c 语言,请高手帮忙看看这个程序都有哪些地方错误了
题目:定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问题。以下是我写的程序,在Dev-C++上运行的。#include<stdio.h>stru...
题目:定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问题。以下是我写的程序,在Dev-C++上运行的。
#include<stdio.h>
struct day
{
int year;
int month;
int day;
}ri;
int select(int a)
{
if(a%4==0&&a%100!=0) return 1;
else if(a%100==0&&a%400==0) return 1;
else return 0;
}
main()
{
int a[12];
int i,y,d=0;
scanf("%d,%d,%d",&ri.year,&ri.month,&ri.day);
y=select(ri.year);
if(y==1)
a[12]={31,29,31,30,31,30,31,31,30,31,30,31};
else
a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
for(i=1;i<ri.month;i++)
d=d+a[i-1];
d=d+ri.day;
printf("%d\n",d);
system("pause");
}
出现的错误如下,能运行成功了我会加分的。 展开
#include<stdio.h>
struct day
{
int year;
int month;
int day;
}ri;
int select(int a)
{
if(a%4==0&&a%100!=0) return 1;
else if(a%100==0&&a%400==0) return 1;
else return 0;
}
main()
{
int a[12];
int i,y,d=0;
scanf("%d,%d,%d",&ri.year,&ri.month,&ri.day);
y=select(ri.year);
if(y==1)
a[12]={31,29,31,30,31,30,31,31,30,31,30,31};
else
a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
for(i=1;i<ri.month;i++)
d=d+a[i-1];
d=d+ri.day;
printf("%d\n",d);
system("pause");
}
出现的错误如下,能运行成功了我会加分的。 展开
1个回答
展开全部
#include<stdio.h>
#include <stdlib.h>
struct daytime
{
int year;
int month;
int day;
}ri;
int select(int a)
{
if((a%4)==0&&(a%100)!=0)
return 1;
else
if((a%100)==0&&(a%400)==0)
return 1;
else
return 0;
}
main()
{
int c[12]={31,29,31,30,31,30,31,31,30,31,30,31},
b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int i,y,d=0;
printf("请输入年月日:");
scanf("%d%d%d",&ri.year,&ri.month,&ri.day);
y=select(ri.year);
if(y==1)
{
for(i=1;i<ri.month;i++)
d+=c[i-1];
}
else
{
for(i=1;i<ri.month;i++)
d+=b[i-1];
}
d=d+ri.day;
printf("%d\n",d);
system("pause");
}
试下这以上的代码吧,你定义数组的方法不对,那只是给a[12]一个变量赋值,还有scanf里
变量格式是不能用逗号隔开的。
#include <stdlib.h>
struct daytime
{
int year;
int month;
int day;
}ri;
int select(int a)
{
if((a%4)==0&&(a%100)!=0)
return 1;
else
if((a%100)==0&&(a%400)==0)
return 1;
else
return 0;
}
main()
{
int c[12]={31,29,31,30,31,30,31,31,30,31,30,31},
b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int i,y,d=0;
printf("请输入年月日:");
scanf("%d%d%d",&ri.year,&ri.month,&ri.day);
y=select(ri.year);
if(y==1)
{
for(i=1;i<ri.month;i++)
d+=c[i-1];
}
else
{
for(i=1;i<ri.month;i++)
d+=b[i-1];
}
d=d+ri.day;
printf("%d\n",d);
system("pause");
}
试下这以上的代码吧,你定义数组的方法不对,那只是给a[12]一个变量赋值,还有scanf里
变量格式是不能用逗号隔开的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询