| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
买学问 - 大佬一对一辅导,有问必答买学问 - 专业的付费知识问答平台
共有 388 人关注过本帖
标题:大佬们,怎样实现把一个一维数组的全部赋给另一个一维数组的第i个
只看楼主 加入收藏
炸天帮达令
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-10-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
大佬们,怎样实现把一个一维数组的全部赋给另一个一维数组的第i个
类似 array1=[2,2,2,2],array2=[2,3,3],array3[3.5],变成array4=[[2,2,2,2],[2,3,3],[3,5]]
搜索更多相关主题的帖子: 一维 赋给 数组 全部 
2021-10-05 13:01
自由而无用
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:10
帖 子:257
专家分:739
注 册:2021-8-9
收藏
得分:7 
//online parser: https://www.bccn.net/run/
程序代码:
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
    int i, len;
    char array[4][4] = {
        {2, 2, 2, 2},
        {2, 3, 3, 0},
        {3, 5, 0, 0},
        {0}
    };
#define DEF_STACK_OF
    DEF_STACK_OF char sof[10] = {0xcc};

enum ar{ar1 = 0, ar2, ar3, ar4};
#define ar_sz(_ar) sizeof(array[_ar])
#define ar_le(_ar) strlen(array[_ar])
    //memcpy ar1
    memcpy(array[ar4], array[ar1], len = ar_sz(ar1));
    //strcpy ar2
    strcpy(array[ar4] + len, array[ar2]); len += ar_le(ar2);
    //strcpy ar3
    /* write your code here */

    for (i = 0; i < len; i++) {
        printf("array[ar4][%d] = %d, sof[%d] = %d\n",
        i, array[ar4][i], i, sof[i]);
    }
    
    return 0;
}


[此贴子已经被作者于2021-10-5 14:00编辑过]

2021-10-05 13:41
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:86
帖 子:934
专家分:4920
注 册:2010-3-16
收藏
得分:7 
你那个是python里的数组吧,这个效果可以用一维结构数组,二维int数组,一维int指针数组实现。

程序代码:

 #include <stdio.h>

int main(int argc, char *argv[])
{

    int  array1[4]={2,2,2,2},
        array2[4]={2,3,3},
        array3[4]={3,5};//这3个数组不等长的话输出的时候需要做长度判断
        
    int *array4[3];
    
    array4[0]=array1;
    array4[1]=array2;
    array4[2]=array3;

    for(int i=0;i<3;i++)
    {
        for(int j=0;j<4;j++)
            printf("%d ", array4[i][j]);
        printf("\n");
    }
    
    return 0;
}
2021-10-05 15:16
炸天帮达令
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-10-5
收藏
得分:0 
回复 3楼 apull
这个是力扣上的一道题,要求找一个和的组合,并输出这些组合
输入: candidates = [2,3,6,7], target = 7
输出: [[7],[2,2,3]]
我不知道这个结果要怎么去实现它这个格式
2021-10-05 15:57
炸天帮达令
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-10-5
收藏
得分:0 
回复 2楼 自由而无用
谢谢大佬,这个是力扣上的一道题,要求找一个和的组合,并输出这些组合
输入: candidates = [2,3,6,7], target = 7
输出: [[7],[2,2,3]]
我不知道这个结果要怎么去实现它这个格式
你的代码的结果不和它这个一样
2021-10-05 15:59
自由而无用
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:10
帖 子:257
专家分:739
注 册:2021-8-9
收藏
得分:0 
回复 5楼 炸天帮达令
oh, it sounds very sad, hope you find the best solution asap
I just play c-code at my will
//online parser: https://www.bccn.net/run/
程序代码:
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
    int i, len;
    char array[4][4] = {
        {2, 2, 2, 2},
        {2, 3, 3, 0},
        {3, 5, 0, 0},
        {0}
    };
#define DEF_STACK_OF
    DEF_STACK_OF char sof[10];

enum ar{ar1 = 0, ar2, ar3, ar4};
#define ar_sz(_ar) sizeof(array[_ar])
#define ar_le(_ar) strlen(array[_ar])
    //memcpy ar1
    memcpy(array[ar4], array[ar1], len = ar_sz(ar1));
    //strcpy ar2
    strcpy(array[ar4] + len, array[ar2]); len += ar_le(ar2);
    //strcpy ar3
    strcpy(array[ar4] + len, array[ar3]); len += ar_le(ar3);
    //output by using stack overflow feature[debug-only]
    for (i = 0; i < len; i++) {
        printf("sof[%d] = %d\n", i, sof[i - 4]);
    }
    
    return 0;
}


output sample:

sof[0] = 2
sof[1] = 2
sof[2] = 2
sof[3] = 2
sof[4] = 2
sof[5] = 3
sof[6] = 3
sof[7] = 3
sof[8] = 5

[此贴子已经被作者于2021-10-5 16:15编辑过]

2021-10-05 16:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:427
帖 子:8112
专家分:47847
注 册:2011-1-18
收藏
得分:7 
与其屁的有用信息都没有的废话,为什么不直接贴出题目?
难道把题目提出来是泄露国家机密?我来试试看

题目链接:https://
摘取相关信息
/**
 * Return an array of arrays of size *returnSize.
 * The sizes of the arrays are returned as *returnColumnSizes array.
 * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
 */
int** combinationSum(int* candidates, int candidatesSize, int target, int* returnSize, int** returnColumnSizes){

}
2021-10-08 09:26
炸天帮达令
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-10-5
收藏
得分:0 
回复 7楼 rjsp
哈哈我的问题,我想着是知道那个点后,尝试自己写出来,以后我应该把题目也粘过来的
2021-10-10 21:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:427
帖 子:8112
专家分:47847
注 册:2011-1-18
收藏
得分:0 
回复 8楼 炸天帮达令
我试了一下,提交通过

程序代码:
#include <stdio.h>
#include <stdlib.h>

int** combinationSum( int* candidates, int candidatesSize, int target, int* returnSize, int** returnColumnSizes )
{
    int** retval = malloc( 150*sizeof(int*) ); // 对于给定的输入,保证和为 target 的唯一组合数少于 150 个
    *returnColumnSizes = malloc( 150*sizeof(int) );
    *returnSize = 0;

    int buf[30*200+1]; // 1<=candidates.length<=30, 1<=candidates[i]<=200, 1<=target<=500
    int bufSize = 0;
    int sum = 0;

    while( 1 )
    {
        //for( int i=0; i!=bufSize; ++i )
        //    printf( "%d%c", candidates[buf[i]], " \n"[i+1==bufSize] );

        if( sum == target )
        {
            (*returnColumnSizes)[*returnSize] = bufSize;
            retval[*returnSize] = malloc( bufSize*sizeof(int) );
            for( int i=0; i!=bufSize; ++i )
                retval[*returnSize][i] = candidates[buf[i]];
            ++*returnSize;
        }
        
        if( sum < target )
        {
            int last = bufSize==0 ? 0 : buf[bufSize-1];
            buf[bufSize++] = last;
            sum += candidates[last];
        }
        else
        {
            for( ; bufSize!=0 && buf[bufSize-1]==candidatesSize-1; --bufSize )
                sum -= candidates[candidatesSize-1];
            if( bufSize == 0 )
                break;

            sum += -candidates[buf[bufSize-1]] + candidates[buf[bufSize-1]+1];
            ++buf[bufSize-1];
        }
    }

    return retval;
}

int main( void )
{
    int candidates[] = { 2,3,6,7 };
    int candidatesSize = sizeof(candidates)/sizeof(*candidates);
    int target = 7;

    int returnSize;
    int* returnColumnSizes;
    int** retval = combinationSum( candidates, candidatesSize, target, &returnSize, &returnColumnSizes );
    for( int i=0; i!=returnSize; ++i )
    {
        for( int j=0; j!=returnColumnSizes[i]; ++j )
            printf( "%d%c", retval[i][j], ",\n"[j+1==returnColumnSizes[i]] );
    }
}
2021-10-11 10:41
快速回复:大佬们,怎样实现把一个一维数组的全部赋给另一个一维数组的第i个
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048347 second(s), 8 queries.
Copyright©2004-2021, BCCN.NET, All Rights Reserved