| 
 | 
 
 
发表于 2020-11-11 09:40:07
|
显示全部楼层
 
 
 
 本帖最后由 rt3 于 2020-11-11 10:56 编辑  
 
你的代码有个错误 是 第一个 输入的 变量 即 1120 表示的应该是11点20分,所以 应该把11和20分开处理。但是 你把它当成 一个十进制数操作了。下面是我写的。- #include <stdio.h>
 
  
- int main()
 
 - {
 
 -         long a=0;
 
 -         char time[5];//={'\0'};
 
 -         char hour1[3];
 
 -         long hour2=0;
 
 -         long hour3=0;
 
 -         char minute1[3];
 
 -         long minute2=0;
 
 -         long minute3=0;
 
 -         long duration=0;
 
 -         char endptr[5];
 
 -         char* endptr2=&endptr;
 
  
- //        char ch;
 
 - //        while((ch = getchar()) != '\n' && ch != EOF);
 
 - //
 
 -         scanf("%s %ld",&time,&duration); //接收 用户 输入
 
 -         
 
 -         for(long b=0;b<2;b++)hour1[b]=time[b];
 
 -         hour1[2]='\0';
 
 -         for(long b=0;b<2;b++)minute1[b]=time[b+2];
 
 -         minute1[2]='\0';
 
 -         printf("time==");
 
 -         for(long b=0;b<5;b++)printf("%ld, ",(long)time[b]);
 
 -         printf("time==");
 
 -         for(long b=0;b<5;b++)printf("%c, ",time[b]);
 
 -         putchar('\n');
 
 -         printf("hour1==%s,minute1==%s.\n",hour1,minute1);
 
 -         //拆分 字符串 time
 
 -         
 
 -         printf("duration==%ld\n",duration);
 
 -         hour2=strtol(hour1,&endptr2,10);                //字符串格式 转换到 数值格式
 
  
-         minute2=strtol(minute1,&endptr2,10);                //字符串格式 转换到 数值格式
 
 - //        printf("hour2==%ld,minute2==%ld.\n",hour2,minute2);
 
  
-         hour3=hour2+(minute2+duration)/60;
 
 -         minute3=(minute2+duration)%60;
 
 - //        printf("minute2==%ld,duration==%ld\n",minute2,duration); 
 
 -         //计算 结果
 
 -         
 
 -         printf("%ld%ld\n",hour3,minute3); 
 
 -     return 0;
 
 - }
 
 
  复制代码 |   
 
 
 
 |