这段代码会起作用吗?它似乎没有任何错误,但我的编译器不会显示任何结果:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
/* declaration */
int smallest (int i1, int i2, int i3, int i4, int i5, int smallest){
if (i1 < smallest){
smallest = i1;
}
else if (i2 < smallest) {
smallest = i2;
}
else if (i3 < smallest) {
smallest = i3;
}
else if (i4 < smallest) {
smallest = i4;
}
else if (i5 < smallest){
smallest = i5;
}
else {
smallest = smallest;
}
return (0);
}
我正在尝试为我的C ++课程进行硬件分配,这是其中一个问题。
假设我有五个名为i1, i2, i3, i4, and i5
的 int 变量
将此伪代码转换为C或C ++代码:
let smallest = smallest(i1, i2, i3, i4, i5)
同样在他的讲义中他将此作为一个类似的例子来表示
std::string smallest;
std::string largest;
if (s < t) {
smallest = s;
largest = t;
}
else if (s > t) {
smallest = t;
largest = s;
}
else {
smallest = t; //change the value that is stored in s
largest = s; //change the value that is stored in t
}
std::cout << smallest << std::endl;
std::cout << largest << std::endl;
这就是我使用if else语句的原因。
答案 0 :(得分:1)
答案 1 :(得分:0)
此代码中没有main()
函数 - 因此,不会发生任何事情,也无法调用该函数。
作为旁注,一旦函数退出,您就不会修改变量smallest
。请尝试返回smallest
。
答案 2 :(得分:-1)
假设您传递了4,3,2,1,最小值为5.那么您的函数(应该返回值smallest
而不是0
)将报告4是最小的。您需要删除else
分支并验证您传递的每个值。
答案 3 :(得分:-2)
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
int checkSmallest(int i1, int i2, int i3, int i4, int i5);
int _tmain(int argc, _TCHAR* argv[])
{
int smallestAtm = checkSmallest(-8, 4, 3, 7, 8);
cout << smallestAtm;
std::cin.get();
return 0;
}
int checkSmallest(int i1, int i2, int i3, int i4, int i5)
{
int curSmallest = 0;
if (i1 < curSmallest)
curSmallest = i1;
if (i2 < curSmallest)
curSmallest = i2;
if (i3 < curSmallest)
curSmallest = i3;
if (i4 < curSmallest)
curSmallest = i4;
if (i5 < curSmallest)
curSmallest = i5;
return curSmallest;
}