Тип возвращаемого значения не соответствует типу функции

Тип возвращаемого значения не соответствует типу функции

#include "stdafx.h"
#include
#include
#include "iostream"
void fun(int);
using namespace std;
void main()
<
int number;

setlocale(LC_ALL, "");
printf("введите число
");
cin >> number;
do <
if (!cin) <
printf(" ошибка ввода:
");
cin.clear();
cin.ignore(INT_MAX, ‘
‘);
>

fun(number);
>
void fun(int number)
<
int tmp1;
int tmp2;
tmp1 = number % 10; //5
tmp2 = number / 10;
/*if(tmp2 > 0)

if (tmp2 == 0)
<
exit(EXIT_SUCCESS);
>
fun(tmp2);
system("pause");
return 0;

Я начал изучать C ++ несколько дней назад, и теперь я пытаюсь сделать свою первую программу — приложение «телефонной книги». Появятся имена людей, которых я знаю, я введу имя человека, которому нужен номер, и появится их номер.

Но сейчас я некоторое время отлаживаю и до сих пор не понимаю, что не так с моим кодом! Я уверен, что это очевидно, но я слишком новичок, чтобы понять это.

Вот список всех ошибок, которые я получил при компиляции в Visual Studio 2013:

  • «не могу открыть исходный файл» stdafx.h «»
  • «идентификатор» имя «не определено» (2 раза подряд)
  • «тип возвращаемого значения не соответствует типу функции» (10 раз подряд)
  • «» имя «: необъявленный идентификатор»
  • «» ссылка: инициализатор в стиле функции выглядит как определение функции «
  • «Термин не относится к функции, принимающей 1 аргумент»

Решение

В вашей функции:

Пользователь должен вставить название но тип name переменная была объявлена ​​как int (который является типом для целое число число). Мой вопрос сейчас: почему имя человека должно кодироваться как число?

Как это решить?

Просто используя строка тип.

Примечание: есть много соображений о том, как получить строку из стандартного ввода, но я не ваш учитель C ++, и в вашем случае я думаю, что аргумент очень далек от ваших навыков сейчас.

Другая проблема здесь:

Читайте также:  Агарио играть мод сразу 10000000 массы

В вашей функции объявления name не имеет типа. Это ошибка! Переменная должна иметь тип в качестве аргумента.

Кроме того, ваша функция тела возвращает «строка» тип:

Так почему вы объявили, что ваша функция возвращает int тип?

Правильная форма:

Даже в этой функции тип неправильный:

Так должно быть:

void как возвращаемый тип, потому что ваша функция ничего не возвращает.

Я вижу недостаток ваших базовых навыков в отношении языка. Я предлагаю вам изучить хорошую книгу по C ++ и начать с нее кодирование.

Другие решения

«идентификатор» имя «не определено» вы не объявляете имя переменной внутри ссылки на функцию, правильным является int main (string name) тебе это нужно string ,

«тип возвращаемого значения не соответствует типу функции», используя в качестве примера функцию int link(string name) , если вы хотите вернуть номер телефона, или вы вернете его как 8506589 (без пробелов), или вы измените тип возврата на строку, чтобы он считал строку и принимал такие вещи, как — или пробел.

3 — Нет необходимости в заголовке stdafx, удалите эту строку и Google для понимания больше об этом.

4 — Вы объявили имя как int, вы должны были объявить как строку.

Чувак, в твоем коде так много проблем, что ты должен подумать о том, чтобы сходить на некоторые видео на YouTube, если ты пытаешься самостоятельно изучить и сначала посмотреть видео для программирования на c, попробуй потом видео из Нью-Бостона … Я помог с несколькими твоими ошибками.

Функции возвращающие значение

Функции возвращающие значение имеют тип, который соответствует типу возвращаемого значения. Эти функции возвращают значение в точку возврата операцией обращения. Соответственно функция должна выступать как операнд в выражениях с присваиванием или выводом. Это отличает синтаксис функций возвращающих и не возвращающих значение. В определении функции должна быть инструкция return , которая принимает выражение для определения возвращаемого значения. Ниже приводится схема размещения в программе функции возвращающей значение.

Читайте также:  Как в excel увеличить высоту ячейки

Функция в программе

Объявление функции. Прототип

Вызов функции

Определение функции

Инструкция return

Инструкция return завершает выполнение функции и возвращает её значение. Инструкция return возвращает только одно значение (переменной или выражения). В некоторых случаях оператор return может применяться и в функциях не возвращающих значение (программа 13.1 стр. 23). Но в этих функциях пустая инструкция return применяется для выхода из функции и возврата управления в вызывающую программу.
Приведем пример программы с функцией возвращающей значение.
Составим программу с функцией возвращающей случайное значение на отрезке [a, b] . Назовем ее myRand() . Эта функция двух аргументов может применяться, например, для заполнения массива.

В теле функции может быть несколько инструкций return . В таком случае только одна инструкция return вернет значение. Это можно запрограммировать с помощью условной инструкции. Приведем пример такой программы. Дано двузначное целое число n. Если это число четное получить произведение его цифр, иначе получить сумму его цифр.

Данную функцию можно было определить и более лаконично, если вместо условной инструкции применить тернарную операцию:

Использование тернарной операции в сочетании с инструкцией return находит довольно частое применение.
Если требуется возвращать функцией более одного значения, то необходимо прибегать к передаче параметров по ссылке или указателю. Рассмотрим пример. Разработать программу в которой используется функция возвращающая разряды двузначного числа.

Перегрузка функций

Перегрузка функций позволяет использовать несколько функций с одним и тем же именем, но различными параметрами. Каждая такая функция должна иметь свой прототип и свое определение. Вызов той или иной перегруженной функции будет определять набор аргументов (сигнатура). Сигнатуры перегруженных функций должны различаться либо по типу, либо по количеству, либо и по тому, и по другому. Рассмотрим простой пример. Требуется составить программу которая выводит половину произведения аргументов, если в сигнатуре два аргумента и среднее арифметическое аргументов, если в сигнатуре три аргумента.

Читайте также:  Вода в морозильной камере холодильника самсунг

Перегрузка функций, так называемый полиморфизм функций, применяется в том случае, если в большой программе существует набор некоторых функций, которые решают однотипные задачи (один класс задач), но реализация каждой из них требует некоторых изменений (например, использование иных типов данных или иного представления результата). Это позволяет разработчику сократить количество используемых имен функций в своей программе.
Заметим так же, что перегруженные функции могут возвращать разный тип данных, при условии, что сигнатуры этих функций будут различаться.

Шаблоны функций

Шаблоны функций (function template) предоставляют инструменты для проектирования функции. Шаблон позволяет отвлечься от конкретного типа данных, с которыми функция будет работать. Шаблон — является руководством для создания реального объекта. Это значит, что шаблон не создает функцию, а указывает компилятору как создать определение функции для соответствующего типа данных, который будут иметь, в определенный момент работы программы, аргументы создаваемой функции. Шаблоны применяются в тех случаях, когда для разных типов данных должен использоваться один и тот же алгоритм.
Определение шаблона:

где T1 , T2 — произвольные имена параметров типа шаблона. Каждому параметру типа должно предшествовать ключевое слово typename . Эти параметры применяются для указания типов различных объектов в заголовке и в теле функции. Компилятор свяжет эти параметры с соответствующим типом аргументов для определения типа параметров функции.
Приведем пример задачи. Составить программу в которой необходимо сравнивать два объекта одного типа. Продемонстрировать использование созданной шаблонной функции для сравнения объектов разного типа.

Ссылка на основную публикацию
Тест для определения цвета волос
Пожалуйста, не копируйте понравившиеся вам статьи незаконно. Мы предлагаем вам разместить активную ссылку на наш сайт в случае, если вы...
Стим показывает что я не в сети
Не редко пользователи Steam встречаются с проблемой, когда подключение к интернету есть, браузеры работают, но клиент Стим не грузит страницы...
Стим саппорт украли аккаунт
Если ваш аккаунт Steam украли или взломали, то до его восстановления вам необходимо выполнить действия, указанные ниже, иначе аккаунт может...
Тест графики видеокарты 3dmark
Наиболее известная программа тестирования производительности, ставшая де-факто стандартом и точкой отсчета в измерениях игровых возможностей видеокарт. Основную популярность программе обеспечило...
Adblock detector