gpt4 book ai didi

c - 如何获取空格分隔的数组值并将其存储在数组中?示例 : input in form 10 20 30 ouput:a[0]=10 a[2]=20 a[3]=30

转载 作者:行者123 更新时间:2023-11-30 21:35:11 26 4
gpt4 key购买 nike

如何在单行中获取空格分隔的整数值并将其存储在数组变量中:

input:
10 20 30

如何将其存储在

a[0],a[1],a[3]

我的代码

#include<stdio.h>
#include<conio.h>
int main()
{
int i = 0, j, arr[100], n, x;
while(i < 100 && scanf("%d", &arr[i]) == 1)
{
i++;
}

for(j = 0; j < i; j++)
{
printf("%d\n", arr[j]);
}
return 0;
}

最佳答案

我认为您的问题是您的程序在输入如下内容后无法继续运行:

10 20 30

原因是程序卡在 scanf 中等待更多输入。

您可以通过如下输入使程序继续运行:

10 20 30 x

但这可能不是您想要的。

相反,您可以使用 fgets 读取整行并解析该行。

类似于:

#include<stdio.h>
#include<string.h>
int main()
{
char line[1000];
int i = 0, j, arr[100];

fgets(line, 1000, stdin);
char* p = line;
while(i < 100 && sscanf(p, "%d", &arr[i]) == 1)
{
i++;

// Remove leading spaces
while(*p == ' ') ++p;

// Advance to next space
p = strchr(p, ' ');
if (p == NULL)
{
// All input handled
break;
}
}

for(j = 0; j < i; j++)
{
printf("%d\n", arr[j]);
}
return 0;
}

关于c - 如何获取空格分隔的数组值并将其存储在数组中?示例 : input in form 10 20 30 ouput:a[0]=10 a[2]=20 a[3]=30,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42923965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com