数据结构计算多组前进时间
#includestruct time { int hours; int minutes; int seconds; }; struct time timeupdate(struct time now,int plus); int main(void) { struct time testtime[5]={{11,59,59},{12,0,0},{1,29,59},{23,59,59},{19,12,27}}; int i; int plus; printf("你想要时间向前多少秒?n"); scanf("%d",&plus); for(i=0;i<5;i++) { printf("Time is %.2d:%.2d:%.2dn",testtime[i].hours,testtime[i].minutes,testtime[i].seconds); testtime[i]=timeupdate(testtime[i],plus); printf("%d seconds later time is %.2d:%.2d:%.2dn",plus,testtime[i].hours,testtime[i].minutes,testtime[i].seconds); } return 0; } struct time timeupdate(struct time now,int plus) { now.seconds+=plus; if(now.seconds>59) { now.minutes=now.minutes+now.seconds/60; now.seconds=now.seconds%60; if(now.minutes>59) { now.hours+=now.minutes/60; now.minutes=now.minutes%60; if(now.hours>23) { now.hours=now.hours%24; } } } return now; }
#includeint main() { int n; int count = 0; int s,k; int i,j; int b = 0; int a[10]; int sum = 0; scanf("%d",&n); k = n; if(n==0)//单个0时输出 { printf("a"); } while(n!=0)//将数字分解,并存入数组 { i = n % 10; a[count] = i; count++; n = n / 10; } s = count + 1; for(j = count-1;j>=0;j--) { s--; if(a[j]==0&&a[j-1]==0&&a[1]!=0&&k>10000&&b==0)//不超过亿,中间连续多0解决方法 { b++; printf("W"); } if(a[j]==0&&a[j-1]==0)//遇到连续0时的方法 { continue; } switch(a[j])//数字转字母 { case 0: printf("a"); break; case 1: printf("b"); break; case 2: printf("c"); break; case 3: printf("d"); break; case 4: printf("e"); break; case 5: printf("f"); break; case 6: printf("g"); break; case 7: printf("h"); break; case 8: printf("i"); break; case 9: printf("j"); break; } if(a[j]!=0)//数字转单位 { switch(s) { case 1: break; case 2: printf("S"); break; case 3: printf("B"); break; case 4: printf("Q"); break; case 5: printf("W"); break; case 6: printf("S"); break; case 7: printf("B"); break; case 8: printf("Q"); break; case 9: printf("Y"); break; } } //s--; } return 0; }



