Хотел бы знать, какую ошибку я совершил
Я не очень хорошо разбираюсь в языке Си, поэтому хотел бы знать, какую ошибку я допустил при написании программы. Вопрос заключается в следующем.
Цель состоит в том, чтобы сформировать максимально возможное время в формате HH:MM:SS, используя любые шесть из девяти заданных однозначных цифр (не обязательно различимых)
Учитывая набор из девяти одиночных (не обязательно различных) цифр, скажем 0, 0, 1, 3, 4, 6, 7, 8, 9, можно сформировать много различных времен в 24-часовом формате времени чч:мм:СС, например 17:36:40 или 10:30:41, используя каждую из цифр только один раз. Цель состоит в том, чтобы найти максимально возможное допустимое время (с 00:00:01 до 24:00:00), которое может быть сформировано с использованием примерно шести из девяти цифр ровно один раз. В данном случае это 19:48:37.
Поэтому я пробовал писать код, но это всегда приводит к ошибке во время выполнения. Любая помощь будет оценена по достоинству
Что я уже пробовал:
#include<stdio.h> int main() { int a[8],b[5],i,c=0,d; for(i=0;i<9;i++) { scanf("%d",&a[i]); if(a[i]==0) c++; } for(i=8;i>=0;i++) { if(a[i]<3) { b[0]=a[i]; if(b[0]==1||b[0]==0) { b[1]=a[8]; a[8]=-1; } else { i=8; while(a[i]>=5) { i--; } if(a[i]==4&&c==4) { b[1]=4; b[2]=0; b[3]=0; b[4]=0; b[5]=0; a[0]=-1;a[1]=-1;a[2]=-1;a[3]=-1; } else { while(a[i]==4) { i--; } b[1]=a[i]; a[i]=-1; } } } else printf("Impossible"); } for(i=8;i>=0;i++) { if(a[i]<6) { d=i; } else printf("Impossible"); } for(i=d;i>=0;i--) { if(a[i]!=-1) { b[2]=a[i]; a[i]=-1; break; } } for(i=d;i>=0;i--) { if(a[i]!=-1) { b[4]=a[i]; a[i]=-1; break; } } for(i=8;i>=0;i--) { if(a[i]!=-1) { b[3]=a[i]; a[i]=-1; break; } } for(i=8;i>=0;i--) { if(a[i]!=-1) { b[5]=a[i]; a[i]=-1; break; } } printf("%d%d:%d%d:%d%d",b[0],b[1],b[2],b[3],b[4],b[5]); }
Patrice T
Какая ошибка времени выполнения, где ?
Patrice T
В последний раз, когда я проверял, 24 - часовое время работало с 00:00:00 до 23:59:59.