c语言 int中01和1有区别吗

Python015

c语言 int中01和1有区别吗,第1张

c语言 int中01和1有区别的

c语言中1、1.0、'1'、"1",都是有区别的。1是整数1.0是实数'1'是字符"1"是字符串

int是c语言基本数据类型之一,是整型的意思。 C语言中,有多种不同的数据... 一起跟随小编过来看看吧 01“\ 0 ”在 c语言中 代表“字符串结束符”。

01背包问题就是有个容量为W的包,然后有一堆的物品(1...n),其中wi、vi分别为第i个物品的重量和价值,现在需要求的就是使得包中所装的物品尽可能的价值高。那么这个物品放不放在包中对应取值0

or

1。其算法为动态规划,需要证明最优子结构性质。用s[i][j]表示只有前i个物品且包容量为j时所能等到的最大价值,而有递归式

s[i][j]=

s[i-1][j],

wi>j

max{s[i-1][j],s[i-1][j-wi]+vi},

wi<=j

s[0][j]=0

1<=j<=W

s[i][0]=0

1<=i<=n

所以不论用什么语言实现,就是计算上面的式子,最终求得s[n][W],上面的式子很好用递推实现的,这个是自底向上的,就是两层for;你也可以用栈实现自顶向下的,这个是记录式的方法。

以上的W是只考虑整数的。

#include<stdio.h>

void main()

{

    int i,j,k,l,M0=0,M1=0

    char N[30]

    scanf("%s",N[30]) //有下标就是这个元素了

    for(i=0N[i]!='\0'i++)

    {

        if(N[i]==0) //这里是不是少了一对单引号

    {

    k=0

    for(N[i]=='0'i++)//逻辑有问题了,如果你前面找0的时候 0前面有1怎么办?

         k++

    if(k>M0)

        M0=k

    }

    if(N[i]==1) // 同上,引号

    {

        l=0

        for(N[i]=='1'i++)//逻辑问题

            l++

        if(l>M1)

            M1=l

    }

    }

    printf("%d,%d",M0,M1)

}

// 先找 0, 然后再 找 1, 都从第一个元素开始找  不能接着后面找

//不知道是你代码写太乱 还是我看错了