gpt4 book ai didi

c - 如何将数组定义为数字字符串的长度?

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

我不确定具体该怎么做。如果有人有一些专家建议,那将非常有帮助!

#define SIZE ((int) (sizeof(digit_count)/sizeof(digit_count[0]))
#define N count

int main()
{
int i, num, count, digit_count[N] = {0};

printf("Enter a number: ");
scanf("%d", &num);

while (num != 0)
{
digit_count[num % 10]++;
num /= 10;
++count;
}

for (i = 0; i < SIZE); i++)
printf("%d occured %d times\n", i, digit_count[i]);

return 0;
}

最佳答案

使用malloc:

int main()
{
int base = 10;
int num, *digit_count;

printf("Enter a number: ");
scanf("%d", &num);

digit_count = malloc (base * sizeof (int));
if (!digit_count)
return -1;

while (num != 0)
{
digit_count[num % base]++;
num /= base;
}

for (i = 0; i < base); i++)
printf("%d occurred %d times\n", i, digit_count[i]);

free(digit_count);
return 0;
}

由于总是有十位数字,因此没有理由在此处使用动态内存分配,但如果需要分配的条目数在运行时发生变化,则此处使用的相同模式也同样有效。您可以在运行时更改base,并且程序仍然可以工作。

关于c - 如何将数组定义为数字字符串的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28715831/

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