给定一组 10 位数字,我需要找出索引在给定数字中出现的次数,例如
给定 2 2 0 0 0 3 0 0 1 0
作为数组元素,数组索引从 0-9 所以我有类似的东西
0 1 2 3 4 5 6 7 8 9
2 2 0 0 0 3 0 0 1 0 ---> input
00115558 -----> output
第一个索引 0 出现两次,第二个索引 1 出现两次,第三个索引 0 出现 0 次,因此被忽略,依此类推,结果为 00115558,现在我需要重新排列输出这样 0 就不能启动,所以我需要类似 10015558
我能够获得像 00115558
这样的初始输出,但我需要将其保存到一个数组中,以便我可以循环遍历该数组并检查大于 0 的值并交换位置。
int main() {
int i,j,len;
int array[10],output[10];
printf("Enter 10 digit number separated by space: \n");
for (i = 0; i < 10; i++)
scanf("%d", &array[i]);
len = sizeof(array)/sizeof(array[0]);
for(i=0; i<len; i++)
{
if(array[i] != 0)
{
for(j=0; j<array[i]; j++)
//output[j] = i;
printf("%d ", i);
}
}
我尝试将输出保存到另一个数组中,并在循环外部打印该数组以查看内容,但结果不是我想要的。我如何将我的值保存到输出[]数组中。感谢您的帮助
最佳答案
#include<stdio.h>
#include<conio.h>
int main()
{
int i,j,len;
int array[10],output[10];
printf("Enter 10 digit number separated by space: \n");
for (i = 0; i < 10; i++)
scanf("%d", &array[i]);
len = sizeof(array)/sizeof(array[0]);
for(i=0; i<len; i++)
{
if(array[i] != 0)
{
for(j=0; j<array[i]; j++)
//output[j] = i;
printf("%d ", i);
}
}
}
先生,我在“Dev c++”中尝试了与上面相同的代码。我得到的答案是00115558
。我认为你的代码是绝对正确的。更改您的 IDE 软件或更新它。
关于c - C语言中如何向数组追加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53581192/