嗨,我已经写了两个代码了
1.
#include<iostream>
using namespace std;
void swap(int *x, int *y)
{
int t;
t = *x;
*x = *y;
*y = t;
}
int main()
{
int a = 10, b = 20;
cout << "value of a before swap " << a <<
我编写了这个简单的C++代码来交换任何两个变量。它适用于整数和双,但对于复数不起作用,你知道为什么吗?
#include <iostream>
#include <complex>
using std::cout;
using std::endl;
using std::complex;
template <class T>
inline void swap(T& d, T& s)
{
T temp = d;
d = s;
s = temp;
}
int main()
{
int m=5,
#include <stdio.h>
void swap1(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
void swap2(int *a, int *b)
{
int *temp = a;
a = b;
b = temp;
}
void swap3(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
main()
{
int a = 9, b = 4;
printf(
我已经创建了一个函数指针数组来交换两个变量。指向这些函数的指针,即: swap1、swap2。swap3和swap4.swap2正在使用作为参数传递的指针进行交换。但是,在声明函数指针时,只有int和int作为参数传递。编译后,会引发许多警告。那么,我们是否有更好的方法来传递参数,在函数调用本身中加入条件。代码如下所示。
#include <stdio.h>
int swap1(int ,int );
int swap2(int* ,int* );
int swap3(int ,int );
int swap4(int, int);
in
我开始阅读一本关于C++的书,发现了以下代码。这是一个关于如何通过引用发送传递参数的示例。
#include <iostream>
void swap(int &x, int &y);
int main()
{
int x = 5, y = 10;
std::cout << "Main. Before swap, x: " << x
<< " y: " << y << "\n";
swap(x, y);
我已经尝试过直接输入SWAP()函数,它可以工作,但由于函数在其中,它不会交换变量。
def SWAP(x,y):
w = x
x = y
y = w
del w
def ORDER(x,y,z):
if x > z:
SWAP(x,z)
if x > y:
SWAP(x,y)
if y > z:
SWAP(y,z)
print(f'{x}<{y}<{z}')
我需要创建一个函数,该函数接受一个包含已知列和可变行的整数矩阵,该矩阵稍后将用于排序和检查矩阵是否为行魔法/列魔法。我知道如何进行排序,但我的问题是设置循环的末尾,因为它们可以是4/5/6注:我是一个学生,所以他们不希望我使用sizeof
int sort(int A[? ][5]) {
int i, j, temp;
for (i = 0; i < ? ; i++) { // the number of rows
int min = A[i][0];
for (j = 0; j < 5; j++) { //the number
尝试定义一个函数来内联更新输入参数,但是找不到方法。
例如,
def swap(a, b):
# Result here not return to arguments after called
a, b = b, a
a, b = 5, 3
swap(a, b) # Expect a=3, b=5 after call swap
我的问题是如何定义函数,而不是以不同的方式调用swap或类方法。Python不支持按引用调用,也许没有办法。
这就是我到目前为止所拥有的。
let Swap (left : int , right : int ) = (right, left)
let mutable x = 5
let mutable y = 10
let (newX, newY) = Swap(x, y) //<--this works
//none of these seem to work
//x, y <- Swap(x, y)
//(x, y) <- Swap(x, y)
//(x, y) <- Swap(x, y)
//do (x, y) = Swap(x, y)
//let (x, y)
如何定义和声明一个函数,而不是,而不是,以C++形式接受任何通过值传递的参数。如下所示,应该返回一个错误:
#include <iostream>
using namespace std;
// function declaration
void swap(int &x, int &y);
int main () {
// local variable declaration:
int a = 100;
int b = 200;
cout << "Before swap, value of a :" <
我只是试着用不同的方式传递指针,我遇到了这个疑问。
我们可以使用取消引用(*p=*q)将指针值存储到指针,为什么不能通过函数传递。
void swap(int *p,int *q)
{
int temp=*p;
*p=*q; /** when this is possible**/
*q=temp;
}
int main()
{
int a=5,b=10;
int *x,*y;
x=&a;
y=&b;
swap(&a,&b);
swap(x,y);
swap(*x,*y);/*why this is not possibel*/
}
这是出现在"C++ Primer“第13.3节中的有关代码,第5版:
void swap(Foo &lhs, Foo &rhs)
{
using std::swap;
swap(lhs.h, rhs.h); // uses the HasPtr version of swap
// swap other members of type Foo
}
书中提到了类特定的交换空间不被使用声明隐藏的现象,并请读者参阅第18.2.3节:
我阅读了这一节,并意识到这可能与依赖于参数的查找(ADL)有关。摘录如下:
但我在理解上还是有些模糊
我只是在想,为什么会有人这样写:
std::iter_swap(i, k);
而不是这个?
std::swap(*i, *k); // saved a few keystrokes!
然后我研究了iter_swap的实现,当然它只使用swap而不是std::swap,因为我们已经在namespace std中了。这就引出了下一个问题:
为什么会有人写这样的话:
using std::swap;
swap(a, b);
而不是这个?
std::iter_swap(&a, &b); // saved an entire line of code!
这里有没有什么我忽略的重要
为什么这段python代码不交换数字?
def swap(x, y):
'''THe swap function'''
print("INSIDE")
temp = x
x = y
y = temp
#Driver_code
x = 2
y = 3
swap(x, y)
print(x)
print(y)
出于训练的目的,我在javascript中实现了一组排序算法。除了堆排序之外,我的实现已经成功地对整数和单字符字符串数组进行了排序。
我的实现对数组进行了正确的排序,除了在返回排序后的数组时将最小的数字放在末尾。
我不是计算机科学专业的学生/毕业生,也没有很多编程背景。我正在通过读取/尝试/失败方法学习,但我无法让它正确工作。
我会把代码和结果放在这一段下面。最后,我想补充的是,我将的伪代码作为我的实现的参考。
function heapSort(intl)
{
var l = intl.length,
end = l - 1,
swap;
我编写了用于传递值的代码,通常使用指针,我的问题是如何将这些值,即a&b作为常量指针传递,如果它还没有的话。
void swap(int *x, int *y)
{
int tmp;
tmp = *x;
*x = *y;
*y = tmp;
return;
}
int main () {
int a = 20;
int b = 12345;
printf("Before swap, value of a : %d\n", a );
% gcc -std=c89 -o main main.c
/tmp/cccuTfCk.o: In function `main':
main_c11e5.c:(.text+0x3c): undefined reference to `swap'
collect2: error: ld returned 1 exit status
这是我的函数文件
#include <stdio.h>
void swap(int *p, int *q){
int a;
int b;
*p = a;
*q = b;
*p = b;
*q = a;
return p ,q
我知道ADL是什么,我知道在C++中,内部作用域函数隐藏外部作用域函数。也就是说,名称不会跨作用域重载。因此,功能重载需要在相同的范围内进行。
所以现在我的问题是,对于这个常见的代码片段:
#include <iostream>
#include <string>
using std::cout;
using std::endl;
namespace Foo{
class Bar{
friend void swap(Bar& a, Bar& b);
};
void swap(Bar& a, Bar&
我正在做一个练习,任务是修复swap_pointer()。
应该交换两根绳子。
s1 = "I should print second.";
s2 = "I should print first.";
到目前为止我的工作:
#include <stdio.h>
void swap_nums(int *, int *);
void swap_pointers(char *x, char *y);
int main(void) {
int a = 3, b = 4;
char *s1, *s2;
swap_nums(&am
我正在尝试将一组新的表达式添加到一个向量中,但得到了一个错误,调试断言失败,表达式:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)。当尝试删除生成的第二个ModelImage时,就会发生这种情况。
std::vector<ModelImage> ModelImages;
for(int n=0;n<nParamSets;n++)
{
ModelImage* mI = new ModelImage(MOD_WIDTH,MOD_HEIGHT);
ModelImages.push_back(*mI);
delete mI