c - C语言中如何向数组追加值

标签 c arrays

给定一组 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/

相关文章:

c - 功能:变量替换

c - 不同的 while 循环(do while vs infinite while),哪个更好?

c - Printf 十六进制格式导致错误输出

java - 如何获得一个int数组,其中某个元素在单链列表中的位置

c - 动态数组分配,按值传递,超出范围

c - 带有 %g 和正确的 double 值的 printf 打印出令人讨厌的数字 - 可能是什么原因?

javascript - 在数组中使用未选中和选中的框

javascript - 删除多维重复数组

Javascript:存储最后生成的随机数

c - GPA计算程序