будет ли этот код работать? У него нет никаких ошибок, но мой компилятор не будет показывать никаких результатов:
#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);
}
Я пытаюсь сделать назначение HW для моего участия в классе C++, и это один из вопросов.
Предположим, у меня есть пять переменных int с именами i1, i2, i3, i4, and i5
Преобразуйте этот псевдокод в код 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.
У вас нет функции main()
в этом code-, поэтому ничего не произойдет, и функция не может быть вызвана.
В качестве побочной заметки вы не изменяете smallest
переменную после выхода функции. Вместо этого попробуйте вернуться к smallest
.
Скажем, вы проходите 4,3,2,1, а наименьшее - 5. Тогда ваша функция (которая должна вернуть smallest
значение, а не 0
) сообщит, что 4 является наименьшим. Вам нужно удалить ветки else
и проверить каждое переданное вами значение.
#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;
}
for loop
в этом случаеsmallest
) и всегда возвращаете одно и то же значение.