鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 乐乐学编程

[已解决]C语言越学越不懂了,请教

[复制链接]
 楼主| 发表于 2020-10-23 16:48:24 | 显示全部楼层
xieglt 发表于 2020-10-23 09:39
你认为复杂,是因为你不懂C++。人家用C++写,不违背题意吧,真纠结!

谢谢你对我那个程序错误的指出,无奈我不懂的 ------ 他的C++程序像答案的模样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-25 00:52:50 | 显示全部楼层    本楼为最佳答案   
本程序需要在DEV_C++的菜单--->工具--->编译选项--->编译时加入命令前打勾,并在下面的加入框中加入:-std=c++11
#include <iostream>
#include <iterator>
#include <algorithm>

void foo_c( int a[], size_t n )
{
    int* q = a;
    for( int *p=a; p!=a+n; ++p )
        if( *p != 0 )
            *q++ = *p;
    for( ; q!=a+n; ++q )
        *q = 0;
}

template<typename T,size_t N> void foo_cpp( T (&a)[N] )
{
    std::stable_partition( a, a+N, [](T n){return n>0;} );
}

template<typename T,size_t N> void print( const T (&a)[N] )
{
    std::copy( a, a+N, std::ostream_iterator<T>(std::cout," ") );
    std::cout << std::endl;
}

int main( void )
{
    {
        int nums[] = { 9,0,0,0,10,0,0,0,11,0,12,0,13,0,14,0,15,0,16,0 };
        foo_c( nums, sizeof(nums)/sizeof(*nums) );
        print( nums );
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-25 08:26:14 | 显示全部楼层
本帖最后由 shooan 于 2020-10-25 09:40 编辑

纯C语言写的,刚好之前在leetcode上面做过
void moveZeroes(int* nums, int numsSize){
    int p = numsSize-1;
    while (nums[p]==0)      // 找到最后一个非零元素的下标
    {
        if (p == 0)
            return;
        --p;
    }

    int k = p;
    for (int i = k-1; i >= 0; i--)
    {
        if (nums[i]==0)     // 找到最近的一个零元素的下标
        {
            int m = i;
            while (m < p)   // 把零往后面推
            {
                int t = nums[m];
                nums[m] = nums[m+1];
                nums[m+1] = t;
                m++;
            }
            p--;
        }
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-25 08:41:43 | 显示全部楼层
风过无痕1989 发表于 2020-10-25 00:52
本程序需要在DEV_C++的菜单--->工具--->编译选项--->编译时加入命令前打勾,并在下面的加入框中加入:-std= ...

谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-25 08:42:47 | 显示全部楼层
shooan 发表于 2020-10-25 08:26
纯C语言写的,刚好之前在leetcode上面做过

谢谢 ! 纯C语言的程序,我上面那个就是呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-25 09:32:08 | 显示全部楼层
乐乐学编程 发表于 2020-10-25 08:42
谢谢 ! 纯C语言的程序,我上面那个就是呀

不客气
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 21:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表