【发布时间】:2021-04-05 14:41:20
【问题描述】:
我想将“if”转换为“条件运算符 (:?)”。我试图写它,但我收到一个错误expected expression before "for"。
原代码:
#include <stdio.h>
int main ()
{
int n, i, k, a [10], new;
printf ("n:");
scanf ("% d", & n);
printf ("Initial \ n");
for (i = 0; i <n; i ++)
{
a [i] = i;
printf ("% d. value:% d \ n", i, a [i]);
}
printf ("Enter the index value you want to change:");
scanf ("% d", & k);
if ((k> = 0) && (k <n))
{
for (i = 1; i <= n; i ++)
{
if (i == k)
{
printf ("What number will you replace with array index% d?:", a [i]);
scanf ("% d", & new);
a [i] = new;
} // if (i == k) end
} // end of for loop
printf ("Last state \ n");
for (i = 0; i <n; i ++)
{
printf ("% d. value:% d \ n", i, a [i]);
}
} // end of if statement
else
printf ("You did not enter a value within the array boundaries. \ n");
return 0;
}
我想把它转换成条件形式。
我试过了:
#include <stdio.h>
int main ()
{
int n, i, k, a [10], new;
printf ("n:");
scanf ("% d", & n);
printf ("Initial \ n");
for (i = 0; i <n; i ++)
{
a [i] = i;
printf ("% d. value:% d \ n", i, a [i]);
}
printf ("Enter the index value you want to change:");
scanf ("% d", & k);
if ((k> = 0) && (k <n))
for (i = 1; i <= n; i ++)
{
(i == k)?printf("What number will you replace with array index% d?:", a [i]), scanf("% d", & new),(a [i] = new): for(i = 0; i < n; i ++), printf("Last state \ n"), printf("% d. value:% d \ n", i, a [i]), printf("You did not enter a value within the boundaries of the array. \ n" );
}
return 0;
}
我收到一个错误:expected expression before "for". 我该怎么写?
【问题讨论】:
-
像this一样编辑帖子
-
你想用另一个值替换数组中的值吗?
-
for循环是一个语句。您只能在条件运算符的部分中使用 _expression_s。像这样重写大的 if 语句对可读性没有帮助。坚持使用 if 语句。 -
是的,我想将值替换为另一个值的数组。但我想用我从键盘输入的值替换它
-
请理解空格很重要:
\ n与\n不同,> =与>=不同。
标签: c if-statement conditional-operator