на основе первого кода: вот так чуть быстрее, если first и last не совпадают. кроме того, в первом коде first и last используются неинициализированными, если нет 0, здесь исправлено.
| Код | int main() { int T[] = {4,0,8,7,0,1,5,0,2,2,8,0,2,5}; int k = sizeof(T) / sizeof(int); int first=-1, last; int i;
for(i = 0; i < k; ++i) { if(T[i] == 0) { first = i; break; } }
if (first >=0) for(i = k-1; i >= first; --i) { if(T[i] == 0) { last = i; break; } }
printf("Source: "); for(i = 0; i < k; i++) printf("%d ", T[i]);
printf("\nResult:\n"); if (first != -1) { printf("First:T[%d]\n", first); printf("Last:T[%d]\n", last); } else printf("There's no zeroes in T\n");
return 0; }
|
|