#include<stdio.h>
int main(){
int hour,minute;
scanf(“%d%:%d”,&hour,&minute);
if(hour>=0&&hour<=23&&minute>=0&&minute<=59){
if(minute==0&&hour>12){
for(int i=0;i<hour-12;i++){
printf("当");
}
}else if(minute!=0&&hour>=12){
for(int i=0;i<=hour-12;i++){
printf("当");
}
}else{
printf("Only %d:%d. Too early to Dang.",hour,minute);
}
}
}
我的代码出现问题,本题希望可以得到大家的指导,谢谢你的帮助!
修改如下,改动处见注释,供参考:
#include<stdio.h>
int main()
{
int hour,minute;
scanf("%d:%d", &hour, &minute);
//scanf("%d%:%d", &hour, &minute); 修改
if(hour >= 0 && hour <= 23 && minute >=0 && minute <= 59){
if (minute == 0 && hour > 12){
for(int i = 0;i < hour-12; i++){
printf("Dang"); //printf("当"); 修改
}
}else if(minute != 0 && hour >= 12){
for(int i = 0;i <= hour-12; i++){
printf("Dang"); //printf("当"); 修改
}
}else{
printf("Only %02d:%02d. Too early to Dang.", hour, minute);
//printf("Only %d:%d. Too early to Dang.", hour, minute); 修改
}
}
return 0;
}
【以下回答由 GPT 生成】
这段代码存在两个问题:
以下是修改后的代码:
#include<stdio.h>
int main(){
int hour,minute;
scanf("%d:%d",&hour,&minute);
// 判断输入的合法性
if(hour>=0 && hour<=23 && minute>=0 && minute<=59){
// 判断是否为12:00,如果是则直接输出
if(hour == 12 && minute == 0){
printf("Only 12:00. Too early to Dang.");
}
// 判断时间是否大于12:00
else if(hour > 12){
// 输出"Dang"的次数为hour-12
for(int i=0;i<hour-12;i++){
printf("Dang");
}
// 如果minute不为0,则再输出一次"Dang"
if(minute != 0){
printf("Dang");
}
}
else{
// 输出"Only %d:%d. Too early to Dang."
printf("Only %d:%d. Too early to Dang.",hour,minute);
}
}
return 0;
}
经过这些修改后,代码可以正确处理各种情况下的输出。
【相关推荐】