请给个C语言的500行左右的源代码
答案:5 悬赏:0 手机版
解决时间 2021-04-03 23:38
- 提问者网友:蓝莓格格巫
- 2021-04-03 02:49
请给个C语言的500行左右的源代码
最佳答案
- 五星知识达人网友:逃夭
- 2021-04-03 03:00
下面是我初学时的一个列子,是计算时间的。。
可以进行时间相加减```
由于我是在linux下运行的,再转到window上所以格式会有点乱```谅解!!!
代码也没有进行优化处理的```
#include
#include
typedef struct time
{
int year;
int month;
int day;
int hour;
int minute;
int sec;
} ST_TIME;
ST_TIME date;
void add_sec(int secs);
void add_minute(int minutes);
void add_hour(int hours);
void add_day(int days);
int maxday(int leap, int month);
void add_month(int months);
void add_year(int years);
void sub_sec(int secs);
void sub_minute(int minutes);
void sub_hour(int hours);
void sub_day(int days);
void sub_month(int months);
void sub_year(int years);
void sum(void);
void sub(void);
void init_system(void);
int add_number;
int main(int argc, char *argv[])
{
char array[20];
char emblem;
init_system();
printf("Press the '+' or '-' to control.\n");
scanf("%c",&emblem);
switch (emblem)
{
case '+':
{
sum();
break;
}
case '-':
{
sub();
break;
}
}
sprintf(array,"%d-%02d-%02d %02d:%02d:%02d",date.year,date.month,
date.day,date.hour,date.minute,date.sec);
printf("%s\n",array);
return 0;
}
void init_system(void)
{
char str[20];
char *p;
p = str;
printf("Enter the date:\n");
printf("Be sure your inputs like that:2008 12 12 12 12 12\n");
gets(str);
date.year = atoi(p);
date.month = atoi(p+5);
date.day = atoi(p+8);
date.hour = atoi(p+11);
date.minute = atoi(p+14);
date.sec = atoi(p+17);
}
void sum(void)
{
int lab;
printf("please choose the option:\n");
printf("1: add the secs;\n");
printf("2: add the minutes;\n");
printf("3: add the hours;\n");
printf("4: add the days;\n");
printf("5: add the months;\n");
printf("6: add the years;\n");
while (getchar() != '\n');
scanf("%d",&lab);
switch (lab)
{
case 1 :
{
printf("enter the increased secs:");
scanf("%d",&add_number);
add_sec(add_number);
break;
}
case 2:
{
printf("enter the increased minutes:");
scanf("%d",&add_number);
add_minute(add_number);
break;
}
case 3:
{
printf("enter the increased hours:");
scanf("%d",&add_number);
add_hour(add_number);
break;
}
case 4:
{
printf("enter the increased days:");
scanf("%d",&add_number);
add_day(add_number);
break;
}
case 5:
{
printf("enter the increased months:");
scanf("%d",&add_number);
add_month(add_number);
break;
}
case 6:
{
printf("enter the increased years:");
scanf("%d",&add_number);
add_year(add_number);
break;
}
}
}
void sub(void)
{
int lab;
printf("please choose the option:\n");
printf("1: reduce the secs;\n");
printf("2: reduce the minutes;\n");
printf("3: reduce the hours;\n");
printf("4: reduce the days;\n");
printf("5: reduce the months;\n");
printf("6: reduce the years;\n");
scanf("%d",&lab);
switch (lab)
{
case 1 :
{
printf("enter the reduced secs:");
scanf("%d",&add_number);
sub_sec(add_number);
break;
}
case 2:
{
printf("enter the reduced minutes:");
scanf("%d",&add_number);
sub_minute(add_number);
break;
}
case 3:
{
printf("enter the reduced hours:");
scanf("%d",&add_number);
sub_hour(add_number);
break;
}
case 4:
{
printf("enter the reduced days:");
scanf("%d",&add_number);
sub_day(add_number);
break;
}
case 5:
{
printf("enter the reduced months:");
scanf("%d",&add_number);
sub_month(add_number);
break;
}
case 6:
{
printf("enter the increased years:");
scanf("%d",&add_number);
sub_year(add_number);
break;
}
}
}
void add_sec(int secs)
{
date.sec = date.sec + secs;
while (date.sec >= 60)
{
add_minute(1);
date.sec = date.sec - 60;
}
}
void add_minute(int minutes)
{
date.minute = date.minute + minutes;
while (date.minute >= 60)
{
add_hour(1);
date.minute = date.minute - 60;
}
}
void add_hour(int hours)
{
date.hour = date.hour + hours;
while (date.hour >= 24)
{
add_day(1);
date.hour = date.hour - 24;
}
}
void add_day(int days)
{
int leap;
date.day = days + date.day;
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
while (date.day > maxday(leap,date.month))
{
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
date.day = date.day - maxday(leap,date.month);
add_month(1);
}
}
void add_month(int months)
{
int leap;
date.month = date.month + months;
while (date.month > 12)
{
date.month = date.month - 12;
add_year(1);
}
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
if (leap==1 && date.month==2 && date.day>=29)
{
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.day = 28;
}
}
void add_year(int years)
{
int leap;
date.year = date.year + years;
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
if (leap==1 && date.month==2 && date.day>=29)
{
date.month = 2;
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.month = 2;
date.day = 28;
}
}
void sub_sec(int secs)
{
date.sec = date.sec - secs;
while (0 > date.sec)
{
sub_minute(1);
date.sec = date.sec + 60;
}
}
void sub_minute(int minutes)
{
date.minute = date.minute - minutes;
while (0 > date.minute)
{
sub_hour(1);
date.minute = date.minute + 60;
}
}
void sub_hour(int hours)
{
date.hour = date.hour - hours;
while (0 > date.hour)
{
sub_day(1);
date.hour = date.hour + 24;
}
}
void sub_day(int days)
{
int leap;
date.day = date.day - days;
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
while (0 >= date.day)
{
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
date.day = date.day + maxday(leap,date.month-1);
sub_month(1);
}
}
void sub_month(int months)
{
int leap;
date.month = date.month - months;
while (0 >= date.month)
{
date.month = date.month + 12;
sub_year(1);
}
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
if (leap==1 && date.month==2 && date.day>=29)
{
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.day = 28;
}
}
void sub_year(int years)
{
int leap;
date.year = date.year - years;
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
if (leap==1 && date.month==2 && date.day>=29)
{
date.month = 2;
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.month = 2;
date.day = 28;
}
}
int maxday(int leap, int month)
{
int max_day;
switch (month)
{
case 4:
{
max_day = 30;
break;
}
case 6:
{
max_day = 30;
break;
}
case 9:
{
max_day = 30;
break;
}
case 11:
{
max_day = 30;
break;
}
case 2:
{
if (leap == 1)
{
max_day = 29;
break;
}
else
{
max_day = 28;
break;
}
}
default: max_day = 31;
}
return max_day;
我这里还有很多的,如果要的话,就联系我121779988````
只不过我也是个菜鸟级的``
可以进行时间相加减```
由于我是在linux下运行的,再转到window上所以格式会有点乱```谅解!!!
代码也没有进行优化处理的```
#include
#include
typedef struct time
{
int year;
int month;
int day;
int hour;
int minute;
int sec;
} ST_TIME;
ST_TIME date;
void add_sec(int secs);
void add_minute(int minutes);
void add_hour(int hours);
void add_day(int days);
int maxday(int leap, int month);
void add_month(int months);
void add_year(int years);
void sub_sec(int secs);
void sub_minute(int minutes);
void sub_hour(int hours);
void sub_day(int days);
void sub_month(int months);
void sub_year(int years);
void sum(void);
void sub(void);
void init_system(void);
int add_number;
int main(int argc, char *argv[])
{
char array[20];
char emblem;
init_system();
printf("Press the '+' or '-' to control.\n");
scanf("%c",&emblem);
switch (emblem)
{
case '+':
{
sum();
break;
}
case '-':
{
sub();
break;
}
}
sprintf(array,"%d-%02d-%02d %02d:%02d:%02d",date.year,date.month,
date.day,date.hour,date.minute,date.sec);
printf("%s\n",array);
return 0;
}
void init_system(void)
{
char str[20];
char *p;
p = str;
printf("Enter the date:\n");
printf("Be sure your inputs like that:2008 12 12 12 12 12\n");
gets(str);
date.year = atoi(p);
date.month = atoi(p+5);
date.day = atoi(p+8);
date.hour = atoi(p+11);
date.minute = atoi(p+14);
date.sec = atoi(p+17);
}
void sum(void)
{
int lab;
printf("please choose the option:\n");
printf("1: add the secs;\n");
printf("2: add the minutes;\n");
printf("3: add the hours;\n");
printf("4: add the days;\n");
printf("5: add the months;\n");
printf("6: add the years;\n");
while (getchar() != '\n');
scanf("%d",&lab);
switch (lab)
{
case 1 :
{
printf("enter the increased secs:");
scanf("%d",&add_number);
add_sec(add_number);
break;
}
case 2:
{
printf("enter the increased minutes:");
scanf("%d",&add_number);
add_minute(add_number);
break;
}
case 3:
{
printf("enter the increased hours:");
scanf("%d",&add_number);
add_hour(add_number);
break;
}
case 4:
{
printf("enter the increased days:");
scanf("%d",&add_number);
add_day(add_number);
break;
}
case 5:
{
printf("enter the increased months:");
scanf("%d",&add_number);
add_month(add_number);
break;
}
case 6:
{
printf("enter the increased years:");
scanf("%d",&add_number);
add_year(add_number);
break;
}
}
}
void sub(void)
{
int lab;
printf("please choose the option:\n");
printf("1: reduce the secs;\n");
printf("2: reduce the minutes;\n");
printf("3: reduce the hours;\n");
printf("4: reduce the days;\n");
printf("5: reduce the months;\n");
printf("6: reduce the years;\n");
scanf("%d",&lab);
switch (lab)
{
case 1 :
{
printf("enter the reduced secs:");
scanf("%d",&add_number);
sub_sec(add_number);
break;
}
case 2:
{
printf("enter the reduced minutes:");
scanf("%d",&add_number);
sub_minute(add_number);
break;
}
case 3:
{
printf("enter the reduced hours:");
scanf("%d",&add_number);
sub_hour(add_number);
break;
}
case 4:
{
printf("enter the reduced days:");
scanf("%d",&add_number);
sub_day(add_number);
break;
}
case 5:
{
printf("enter the reduced months:");
scanf("%d",&add_number);
sub_month(add_number);
break;
}
case 6:
{
printf("enter the increased years:");
scanf("%d",&add_number);
sub_year(add_number);
break;
}
}
}
void add_sec(int secs)
{
date.sec = date.sec + secs;
while (date.sec >= 60)
{
add_minute(1);
date.sec = date.sec - 60;
}
}
void add_minute(int minutes)
{
date.minute = date.minute + minutes;
while (date.minute >= 60)
{
add_hour(1);
date.minute = date.minute - 60;
}
}
void add_hour(int hours)
{
date.hour = date.hour + hours;
while (date.hour >= 24)
{
add_day(1);
date.hour = date.hour - 24;
}
}
void add_day(int days)
{
int leap;
date.day = days + date.day;
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
while (date.day > maxday(leap,date.month))
{
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
date.day = date.day - maxday(leap,date.month);
add_month(1);
}
}
void add_month(int months)
{
int leap;
date.month = date.month + months;
while (date.month > 12)
{
date.month = date.month - 12;
add_year(1);
}
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
if (leap==1 && date.month==2 && date.day>=29)
{
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.day = 28;
}
}
void add_year(int years)
{
int leap;
date.year = date.year + years;
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
if (leap==1 && date.month==2 && date.day>=29)
{
date.month = 2;
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.month = 2;
date.day = 28;
}
}
void sub_sec(int secs)
{
date.sec = date.sec - secs;
while (0 > date.sec)
{
sub_minute(1);
date.sec = date.sec + 60;
}
}
void sub_minute(int minutes)
{
date.minute = date.minute - minutes;
while (0 > date.minute)
{
sub_hour(1);
date.minute = date.minute + 60;
}
}
void sub_hour(int hours)
{
date.hour = date.hour - hours;
while (0 > date.hour)
{
sub_day(1);
date.hour = date.hour + 24;
}
}
void sub_day(int days)
{
int leap;
date.day = date.day - days;
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
while (0 >= date.day)
{
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
date.day = date.day + maxday(leap,date.month-1);
sub_month(1);
}
}
void sub_month(int months)
{
int leap;
date.month = date.month - months;
while (0 >= date.month)
{
date.month = date.month + 12;
sub_year(1);
}
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
if (leap==1 && date.month==2 && date.day>=29)
{
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.day = 28;
}
}
void sub_year(int years)
{
int leap;
date.year = date.year - years;
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}
if (leap==1 && date.month==2 && date.day>=29)
{
date.month = 2;
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.month = 2;
date.day = 28;
}
}
int maxday(int leap, int month)
{
int max_day;
switch (month)
{
case 4:
{
max_day = 30;
break;
}
case 6:
{
max_day = 30;
break;
}
case 9:
{
max_day = 30;
break;
}
case 11:
{
max_day = 30;
break;
}
case 2:
{
if (leap == 1)
{
max_day = 29;
break;
}
else
{
max_day = 28;
break;
}
}
default: max_day = 31;
}
return max_day;
我这里还有很多的,如果要的话,就联系我121779988````
只不过我也是个菜鸟级的``
全部回答
- 1楼网友:廢物販賣機
- 2021-04-03 06:18
那么多的行就给0分啊?
- 2楼网友:上分大魔王
- 2021-04-03 05:51
朋友,你走进了一个误区!
- 3楼网友:从此江山别
- 2021-04-03 05:29
建议你用子函数的形式 实现各种功能 然后在主函数里面选择想执行的功能 这样代码自然就多了 !
- 4楼网友:duile
- 2021-04-03 03:58
简单,定义一个数组
struct M a[500][128]=
{
...
{122,"中国移动","中国"},
{10,"中国石化","中国"},
...
};
呵呵,初始化就能达到500行,然后提供简单的查询,编辑功能
struct M a[500][128]=
{
...
{122,"中国移动","中国"},
{10,"中国石化","中国"},
...
};
呵呵,初始化就能达到500行,然后提供简单的查询,编辑功能
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯