![](/img/trans.png)
[英]How to increment and decrement a char pointer in a menu-driven C program?
[英]using for loop iteration (decrement or increment )based on user input in C program
我正在编写代码来对数组进行一些操作。 要求是读取数组并设置值。 如果用户将输入设置为 U 需要从索引开始到最后一个数组并复制值。 如果用户将输入设置为 D 需要从索引最后一个到零索引开始数组并复制值。
除了循环条件外,循环内的一切都是一样的。 因此,尝试将代码优化为单循环是否可以在 C 中,如下所示或任何其他建议。
char input = 'U';
if (input == 'U')
for (size_t i = 0; i < M; i++)
{
else if (input == 'D')
for (size_t i = M; i < 0; i--)
{
//parsing logic with index;
}
我们可以使用单循环,也可以使用start 、 end和flag变量来实现这一点。
start表示循环的开始
end表示循环的结束
flag表示递增和递减
char input = 'U';
size_t flag = 1;
size_t start = 0, end = M;
//if input is 'D' default if set to match input U
if (input = 'D'){
start = M;
end = 0
flag = -1
}
//single loop
for (size_t i = start ; i < end ; i+=flag){
//parsing logic with index
}
格式化......它燃烧!
除了笑话,试试这个:
int M = 100;
char input = 'U';
for (size_t i = 10; i < M & i > 0; ) {
printf("i: %ld\n", i);
if (input == 'U') ++i;
else if (input == 'D') --i;
}
我不知道 M 是什么,但这至少应该为您提供解决方案的结构。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.