在C语言中存储和迭代存储值

在C语言中存储和迭代存储值,c,function,for-loop,if-statement,input,C,Function,For Loop,If Statement,Input,在下面的功能中,如果k值为0,则用户输入10个数字5存储在X\u用户输入中和Y\u用户输入中如果k值为1,则存储在X\u用户输入中。但是,if else语句有错误,我正在尝试查看两个用户的所有存储值。我如何修复下面的if语句 变数 #include <stdio.h> int main(void) { int input = 0, k = 0; char playerSelect[][2] = {"1", "2"}; int X_u

在下面的功能中,如果
k
值为0,则用户输入10个数字5存储在
X\u用户输入中
Y\u用户输入中
如果
k
值为1,则存储在
X\u用户输入中。但是,
if else
语句有错误,我正在尝试查看两个用户的所有存储值。我如何修复下面的if语句

变数

#include <stdio.h>
int main(void)
{
  int input = 0, k = 0;
  char playerSelect[][2] = {"1", "2"};
  int X_users_inputs[10] = {0};
  int O_user_inputs[10] = {0};

  int s_count = 1;
  int l_count = 1;
预期产量

Player X input: 1
X user 1

Player O input: 2
Y user 2

Player X input: 3
X user 1
X user 3

Player O input: 4
Y user 2
Y user 4

问题是,
i
在请求
X
O
输入之间递增。因此,第一个
X
输入进入
X\u用户输入[0]
,然后第一个
O
输入进入
O用户输入[1]
。然后将存储到
X\u用户输入[2]
O\u用户输入[3]
。如您所见,每个数组都跳过一个元素

相反,您可以使用
l_count
s_count
作为每个数组的索引。从
0
开始,以避免总是必须减去
1
才能获得数组索引。我还建议使用更好的变量名——如果参与者是
X
O
,则在所有变量中一致使用这些名称

此外,主循环执行11次,而不是10次

int x_count = 0, y_count = 0;

for (int i = 0; i < 10; i++)
{
    printf("\nPlayer %s input: ", playerSelect[k]);

    scanf("%d", &input);

    if(k== 0){
        X_users_inputs[x_count++] = input;
        for(int l =0; l < x_count; l++){
            printf("X user %d\n",X_users_inputs[l]);}
    }
    else if(k== 1) {
        O_user_inputs[y_count++] = input;
        for(int s =0; s < y_count; s++){
            printf("Y user %d\n",X_users_inputs[s]);}
    }

    k = k == 0 ? 1 : 0;
}
int x_count=0,y_count=0;
对于(int i=0;i<10;i++)
{
printf(“\n层%s输入:”,playerSelect[k]);
scanf(“%d”,输入(&I));
如果(k==0){
X_用户输入[X_计数+]=输入;
对于(int l=0;l
您似乎对基数0不太满意,这是C
中的一个问题((i%2==0)?0:1)
相当于简单的
i%2
(只要
i
始终为正值)。它有效谢谢,我修复了它,但是
else if
语句的打印值应该是
O\u user\u inputs
而不是
X\u users\u inputs
Player X input: 1
X user 1

Player O input: 2
Y user 2

Player X input: 3
X user 1
X user 3

Player O input: 4
Y user 2
Y user 4
int x_count = 0, y_count = 0;

for (int i = 0; i < 10; i++)
{
    printf("\nPlayer %s input: ", playerSelect[k]);

    scanf("%d", &input);

    if(k== 0){
        X_users_inputs[x_count++] = input;
        for(int l =0; l < x_count; l++){
            printf("X user %d\n",X_users_inputs[l]);}
    }
    else if(k== 1) {
        O_user_inputs[y_count++] = input;
        for(int s =0; s < y_count; s++){
            printf("Y user %d\n",X_users_inputs[s]);}
    }

    k = k == 0 ? 1 : 0;
}