c-如果转换为条件运算符会有什么问题



我想转换一个"如果";至";条件运算符(:?(";。我试着写它,但我得到了一个错误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".我该怎么写?

此处不使用空格scanf("%d",&n(;尝试将%与d和&具有n个

#include <stdio.h>
int main ()
{
int n, i, index, a[10], value;
printf ("n:");
do
{
scanf ("%d",&n);
}while(n<1||n>10);
printf ("Initial  n");
for (i=0;i<n;i++)
{
a[i]=i;
printf ("n%d. value:%d n", i, a [i]);
}
printf ("Enter the index value you want to change:");
scanf ("%d",&index);
if ((index>=0)&&(index<n))// write like this : >= 
{
printf("What number will you replace with array index% d?:",a[index]);
scanf("%d",&value);
a[index]=value;
}
for (i=0;i<n;i++)
{
printf ("[%d]", a [i]);
}
return 0;
}

最新更新