Есть много способов сделать это.Вот некоторые из них.
1) Используйте внешний цикл для генерации количества испытаний.Хорошо работает, если количество испытаний следует легко генерируемому шаблону, как в вашем вопросе.
for (unsigned int trials = 10; trials <= 1000000; trials *= 10)
for(unsigned int counter = 1; counter <= trials; counter++)
{
// do stuff
}
2) Используйте таблицу с произвольными значениями, если шаблон не так просто сгенерировать.
unsigned int trials[] = { 15, 97, 1003, 10100, 100444, 999999, 0 };
for (int i = 0; trials[i] > 0; i++)
for(unsigned int counter = 1; counter <= trials[i]; counter++)
{
// do stuff
}
3) Поместите цикл в функцию и вызовите функцию несколько раз.
void foo(unsigned int trials)
{
for(unsigned int counter = 1; counter <= trials; counter++)
{
// do stuff
}
}
int main(void)
{
foo(10);
foo(100);
foo(1000);
foo(10000);
foo(100000);
foo(1000000);
}
Вы также можете объединить 3) с 1) или 2).Например, объединение 3) с 1) выглядит следующим образом
void foo(unsigned int trials)
{
for(unsigned int counter = 1; counter <= trials; counter++)
{
// do stuff
}
}
int main(void)
{
for (unsigned int trials = 10; trials <= 1000000; trials *= 10)
foo(trials);
}