C语言必会100题(19)。时间函数举例1/时间函数举例2/时间函数举例3/时间函数举例4/家庭财务管理小程序
特此鸣谢:鱼C_小甲鱼(B站up主)不二如是(鱼C论坛大佬)
题目来源:https://fishc.com.cn
注:这些题在网上都可以搜到,题下面的代码大多是流传下来的答案(我重新排了一下版,增加了可读性),部分是本人经过深思熟虑后编写的。
91,时间函数举例1
- 题目:无
- 程序源代码:
#include <stdio.h> #include <time.h> int main() { // time_t就是long int型 time_t lt; // 获取系统当前时间 lt=time(NULL); // ctime函数,将日期和时间转换为字符串 printf(ctime(<)); // localtime是 把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为本地时间,返回指针 // asctime函数把储存的时间转换为字符串 printf(asctime(localtime(<))); // gmtime函数转换后的时间没有经过时区变换,是UTC时间 printf(asctime(gmtime(<))); return 0; }
92,时间函数举例2
- 题目:无
- 程序源代码:
#include <stdio.h> #include <time.h> int main() { time_t start, end; int i; start = time(NULL); for(i = 0; i < 3000; i++) { printf("\1\1\1\1\1\1\1\1\1\1\n"); } end = time(NULL); // 返回 time1 和 time2 之间相差的秒数 (time1 - time2) printf("The different is %6.3f\n", difftime(end, start)); return 0; }
93,时间函数举例3
- 题目:无
- 程序源代码:
#include <stdio.h> #include <time.h> int main() { clock_t start, end; // 该程序从启动到函数调用占用CPU的时间 start = clock(); for(i = 0; i < 10000; i++) { printf("\1\1\1\1\1\1\1\1\1\1\n"); } end = clock(); printf(": The different is %6.3f\n", (double)(end-start)); return 0; }
94,时间函数举例4
- 题目:用之前的时间函数做一个猜数游戏,判断一个人反应快慢,要求评价用户的速度。
- 程序源代码:
#include <time.h> #include <stdlib.h> #include <stdio.h> int main() { char c; clock_t start, end; time_t a, b; double var; int i, guess; // 随机生成一个种子数字,之前的C语言程序用过 // 生成种子数字后,rand函数使用。 srand(time(NULL)); printf("do you want to play it(是否想要玩这个游戏?).('y' or 'n') \n"); loop: while((c = getchar()) == 'y') { // 将获取到的数字取100余数,确保数字在1到100; i = rand() % 100; printf("\nplease input number you guess(输入你猜的数字):\n"); // 该程序从启动到函数调用占用CPU的时间 start = clock(); // 获取系统当前时间 a = time(NULL); scanf("%d", &guess); while(guess != i) { if(guess > i) { printf("please input a little smaller(请输入一个较小的数字).\n"); scanf("%d", &guess); } else { printf("please input a little bigger(请输入一个较大的数字).\n"); scanf("%d", &guess); } } end = clock(); b = time(NULL); printf(": It took you %6.3f seconds\n", var = (double)(end - start) / 18.2); printf(": it took you %6.3f seconds\n\n", difftime(b, a)); if (var < 15) { printf("You are very clever!\n\n"); } else if (var<25) { printf("you are normal!\n\n"); } else { printf("you are stupid!\n\n"); } printf("Congradulations\n\n"); printf("The number you guess is %d", i); } printf("\ndo you want to try it again?(\"yy\".or.\"n\")\n"); // 这里用户必须输入两个y,因为输入两个y的时候程序才知道你输入了1个y;可以看一下putchar(c); if((c = getchar()) == 'y') { putchar(c); goto loop; } return 0; }
95,家庭财务管理小程序
- 题目:创建一个家庭财务管理小程序
- 程序源代码:
/*money management system*/
#include "stdio.h"
#include "dos.h"
main() {
FILE *fp;
struct date d;
float sum,chm=0.0;
int len,i,j=0;
int c;
char ch[4]="",ch1[16]="",chtime[12]="",chshop[16],chmoney[8];
pp:
clrscr();
sum=0.0;
gotoxy(1,1);
printf("|---------------------------------------------------------------------------|");
gotoxy(1,2);
printf("| money management system(C1.0) 2000.03 |");
gotoxy(1,3);
printf("|---------------------------------------------------------------------------|");
gotoxy(1,4);
printf("| -- money records -- | -- today cost list -- |");
gotoxy(1,5);
printf("| ------------------------ |-------------------------------------|");
gotoxy(1,6);
printf("| date: -------------- | |");
gotoxy(1,7);
printf("| | | | |");
gotoxy(1,8);
printf("| -------------- | |");
gotoxy(1,9);
printf("| thgs: ------------------ | |");
gotoxy(1,10);
printf("| | | | |");
gotoxy(1,11);
printf("| ------------------ | |");
gotoxy(1,12);
printf("| cost: ---------- | |");
gotoxy(1,13);
printf("| | | | |");
gotoxy(1,14);
printf("| ---------- | |");
gotoxy(1,15);
printf("| | |");
gotoxy(1,16);
printf("| | |");
gotoxy(1,17);
printf("| | |");
gotoxy(1,18);
printf("| | |");
gotoxy(1,19);
printf("| | |");
gotoxy(1,20);
printf("| | |");
gotoxy(1,21);
printf("| | |");
gotoxy(1,22);
printf("| | |");
gotoxy(1,23);
printf("|---------------------------------------------------------------------------|");
i=0;
getdate(&d);
sprintf(chtime,"%4d.%02d.%02d",d.da_year,d.da_mon,d.da_day);
52
for(;;) {
gotoxy(3,24);
printf(" Tab __browse cost list Esc __quit");
gotoxy(13,10);
printf(" ");
gotoxy(13,13);
printf(" ");
gotoxy(13,7);
printf("%s",chtime);
j=18;
ch[0]=getch();
if(ch[0]==27)
break;
strcpy(chshop,"");
strcpy(chmoney,"");
if(ch[0]==9) {
mm:
i=0;
fp=fopen("home.dat","r+");
gotoxy(3,24);
printf(" ");
gotoxy(6,4);
printf(" list records ");
gotoxy(1,5);
printf("|-------------------------------------|");
gotoxy(41,4);
printf(" ");
gotoxy(41,5);
printf(" |");
while(fscanf(fp,"%10s%14s%f\n",chtime,chshop,&chm)!=EOF) {
if(i==36) {
getch();
i=0;
}
if ((i%36)<17) {
gotoxy(4,6+i);
printf(" ");
gotoxy(4,6+i);
} else if((i%36)>16) {
gotoxy(41,4+i-17);
printf(" ");
gotoxy(42,4+i-17);
}
i++;
sum=sum+chm;
printf("%10s %-14s %6.1f\n",chtime,chshop,chm);
}
gotoxy(1,23);
printf("|---------------------------------------------------------------------------|");
gotoxy(1,24);
printf("| |");
gotoxy(1,25);
printf("|---------------------------------------------------------------------------|");
gotoxy(10,24);
printf("total is %8.1f$",sum);
fclose(fp);
gotoxy(49,24);
printf("press any key to.....");
getch();
goto pp;
} else {
53
while(ch[0]!='\r') {
if(j<10) {
strncat(chtime,ch,1);
j++;
}
if(ch[0]==8) {
len=strlen(chtime)-1;
if(j>15) {
len=len+1;
j=11;
}
strcpy(ch1,"");
j=j-2;
strncat(ch1,chtime,len);
strcpy(chtime,"");
strncat(chtime,ch1,len-1);
gotoxy(13,7);
printf(" ");
}
gotoxy(13,7);
printf("%s",chtime);
ch[0]=getch();
if(ch[0]==9)
goto mm;
if(ch[0]==27)
exit(1);
}
gotoxy(3,24);
printf(" ");
gotoxy(13,10);
j=0;
ch[0]=getch();
while(ch[0]!='\r') {
if (j<14) {
strncat(chshop,ch,1);
j++;
}
if(ch[0]==8) {
len=strlen(chshop)-1;
strcpy(ch1,"");
j=j-2;
strncat(ch1,chshop,len);
strcpy(chshop,"");
strncat(chshop,ch1,len-1);
gotoxy(13,10);
printf(" ");
}
gotoxy(13,10);
printf("%s",chshop);
ch[0]=getch();
}
gotoxy(13,13);
j=0;
ch[0]=getch();
while(ch[0]!='\r') {
if (j<6) {
strncat(chmoney,ch,1);
j++;
}
if(ch[0]==8) 54 {
len=strlen(chmoney)-1;
strcpy(ch1,"");
j=j-2;
strncat(ch1,chmoney,len);
strcpy(chmoney,"");
strncat(chmoney,ch1,len-1);
gotoxy(13,13);
printf(" ");
}
gotoxy(13,13);
printf("%s",chmoney);
ch[0]=getch();
}
if((strlen(chshop)==0)||(strlen(chmoney)==0))
continue;
if((fp=fopen("home.dat","a+"))!=NULL);
fprintf(fp,"%10s%14s%6s",chtime,chshop,chmoney);
fputc('\n',fp);
fclose(fp);
i++;
gotoxy(41,5+i);
printf("%10s %-14s %-6s",chtime,chshop,chmoney);
}
}
}