数组插入问题?谢谢!

发布于 2022-09-03 15:27:18 字数 129 浏览 20 评论 0

C语言,给定一个任意的整数数组,求一个算法,在每三个整数后面插入一个A,该怎么写?如:{1,7,9,6,3,4,2,7,5,3},转变为{1,7,9,A,6,3,4,A,2,7,5,A,3}.!谢谢,在下新学编程,求大神解答。给一个伪代码也行!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

三人与歌 2022-09-10 15:27:18
#include <stdio.h>

int main()
{
    int arr[] = {1,7,9,6,3,4,2,7,5,3,2,3};
    int lenthArr = sizeof(arr) / sizeof(arr[0]);
    int newLenthArr = lenthArr / 3;
    //申请一个char类型的数组,因为要存'A',数组长度加1,最后存了个'\0'
    char arrNew[newLenthArr + 1 + lenthArr];
    int i = 0, j = 0;
    for (; i < lenthArr;++i, ++j)
    {
        //把整数变成字符
        arrNew[j] = '0' + arr[i];
        if ((i + 1 )% 3 == 0)
        {
            arrNew[++j] = 'A'; 
        }
    }
    arrNew[j] = '\0';
    for (int pos = 0; pos != j; ++pos)
    {
        printf("%c ", arrNew[pos]);
    }
    printf("\n%s\n", arrNew);
    getchar();

}
苦行僧 2022-09-10 15:27:18

你每访问三个,将后面的往后移动一个位置腾出来给A。
至于在原有基础上开辟空间还是新建空间以及时间复杂度等需要楼主自己考虑。

迷路的信 2022-09-10 15:27:18
var a=[0,1,2,3,4,5,6,7,8];
for(var i=1;i<a.length/3;i++){
    a.splice((3*i+i-1),0,'a'); 
}
alert(a);
挥剑断情 2022-09-10 15:27:18
function insertA(arr){
  var arr1=new Array(4);
  arr = arr1.concat(arr);
  for(let i=0;i<arr.length;i++){
    if((i+1)%4==0){
      arr.splice(i+1,0,"A");
    }
  };
  arr.splice(0,5);
  return arr;
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文