gpt4 book ai didi

c - C 中有办法从输入中的数组的不同位置插入多个多于一位的数字吗?

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:27 25 4
gpt4 key购买 nike

#include <stdio.h>  

int main(void)
{
int a[5], i;

printf("Enter a number\n");
for (i = 0; i < 5; i++)
scanf("%d\n", &a[i]);
}

最佳答案

如果我理解您的需要,这是最好将初始数字读取为字符串然后将字符串处理为数字数组的情况之一。虽然有多种方法可以解决此问题,但最简单的方法之一是读取,然后使用 sscanf 处理/转换为数字数组。您可以根据需要调整限制和类型(以下最多 16 位)。如果您的需求不同,请发表评论。这是一个例子:

#include <stdio.h>  

#define MAXN 16

int main(void)
{
unsigned char a[MAXN] = {0};
unsigned i = 0, n = 0;
char str[MAXN] = {0};
char *p = str;

printf("\nEnter a number : ");
scanf (" %[^\n]%*c", str); /* read as char, to digits below */
while (*p && sscanf (p, " %1hhu", &a[i++]) == 1 && i < MAXN) {
p++;
}

/* output array below */
n = i;

puts ("");
for (i = 0; i < n; i++)
printf (" a[%d] : %d\n", i, a[i]);
puts ("");

return 0;
}

输入/输出

$ ./bin/scanf_array

Enter a number : 987654321

a[0] : 9
a[1] : 8
a[2] : 7
a[3] : 6
a[4] : 5
a[5] : 4
a[6] : 3
a[7] : 2
a[8] : 1

注意:如果您希望处理负输入,则需要在将数字转换为数字并稍后以某种方式应用之前保留符号。

关于c - C 中有办法从输入中的数组的不同位置插入多个多于一位的数字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29835457/

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