在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;
}