为什么这在c++;但是在python中工作
这是我的两个代码,我想把我的python代码转换成c++为什么这在c++;但是在python中工作,python,c++,Python,C++,这是我的两个代码,我想把我的python代码转换成c++ Python和C++代码以下 如果n%2和k>n//2: 打印(n%2,n//2) arr[n//2]=0 雷姆=k%(3*n) 对于范围内的i(k-rem,k): t=i%n arr[t]^=arr[-1-t] #打印(arr) 打印(*arr) c++代码 if((n%2!=0)和&(k>n/2)) a[n/2]=0; rem=k%(3*n); 在这个Python代码中,for(i=k-rem;i) arr[t]^=arr[-1-
Python和C++代码
以下如果n%2和k>n//2:
打印(n%2,n//2)
arr[n//2]=0
雷姆=k%(3*n)
对于范围内的i(k-rem,k):
t=i%n
arr[t]^=arr[-1-t]
#打印(arr)
打印(*arr)
c++代码
if((n%2!=0)和&(k>n/2))
a[n/2]=0;
rem=k%(3*n);
在这个Python代码中,for(i=k-rem;i)
arr[t]^=arr[-1-t]
一个索引将是否定的,并解释为“从数组的末尾”C++没有这样的结果。
a[l]^=a[-1-l];
将触发未定义行为(UB)。这不是正确的C++程序。
C++不允许任何负索引。
从您的python语句中,似乎您正在尝试访问上一个脚本中的元素
在C++中,如果你想拥有相同的功能,那么你可以使用<代码> [t] ^=a [(siZeof(a)/siZeof(a(0)))-1 -t]。 你怎么知道它不起作用?<代码> K<代码> >代码> N<代码>有什么值,你得到什么输出,你期望得到什么输出?C++不允许用负值对数组进行索引。(<代码>数组[]/COD>)。总是肯定的, > 1-L/< >总是负的。所以你可能会得到分段错误或内存损坏或类似的情况,这个程序更精确,C++技术上不关心索引的符号,但它是未定义的行为。数组[Value ]大致转换为<代码> *(&数组(0)+值)
我知道,但请提供正确的代码或我必须做什么来代替此预期的输出显然不是垃圾值,但这是给@KevinI的,我知道,但请提供正确的代码或我必须做什么来代替此我故意不提供一段随时可用的代码。否则此网站将成为一个大的“做我的家庭作业”但是如果你愿意学习,我们会指导你。Sizeof是不正确的。Sizeof的单位是字节。需要的是元素中数组的大小。此外,Sizeof指针没有给出整个数组的大小。编辑了代码。如果我看了问题中给出的python代码,用户似乎试图通过GH数组/列表从最后到前面。因此在C++中,我们可以迭代向后减去数组大小的值。谢谢你上次的方法帮助我,我犯了一个愚蠢的错误而不使用L。谢谢你,它帮助了你。