Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2013, 08:18   #1
aurito85
Новичок
Джуниор
 
Регистрация: 25.02.2013
Сообщений: 4
По умолчанию Сумма углов треугольника

Всем привет! Есть задача. Задача по Cи.

Задача:
Сумма внутренних углов треугольника должна быть равна 180 градусам. Собственно вот решение:

Код:
#include <stdio.h>

float remainingAngle(angleA, angleB) {
    float s = angleB+angleA;
    return s;
}

int main(int argc, const char * argv[])


{
    float angleA = 36.9450;
    float angleB = 63.3230;
    float angleC = remainingAngle(angleA, angleB);
    printf("The third angle is %.5f\n", angleC);
}
Скажите, почему результат программы выглядит The third angle is 99.00000 - почему после запятой нули??

Последний раз редактировалось aurito85; 25.02.2013 в 08:31.
aurito85 вне форума Ответить с цитированием
Старый 25.02.2013, 09:15   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Код:
float remainingAngle(angleA, angleB) {
Как вы думаете какой тип параметров тут будет?
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 25.02.2013, 09:53   #3
aurito85
Новичок
Джуниор
 
Регистрация: 25.02.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Ezhik Kihze Посмотреть сообщение
Код:
float remainingAngle(angleA, angleB) {
Как вы думаете какой тип параметров тут будет?
Здесь будет тип float
aurito85 вне форума Ответить с цитированием
Старый 25.02.2013, 10:08   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от aurito85
Здесь будет тип float
Вам же ясно намекают - это вряд ли!

Укажите этим параметрам тип явно:
Код:
float remainingAngle(float angleA, angleB) {
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.02.2013, 12:11   #5
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

В отличие от Pascal, C не поддерживает списки аргументов одного типа, тип каждого аргумента следует указывать явно:
Код:
float remainingAngle(float angleA, float angleB)
Что намного интереснее, мне хотелось бы понять, почему ТС не насторожило, что в его коде число 180 так и не встретилось...
Abstraction вне форума Ответить с цитированием
Старый 25.02.2013, 12:54   #6
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Цитата:
почему ТС не насторожило, что в его коде число 180 так и не встретилось...
Так он "на кошках тренируется"... Он только пробует функцию сделать, до задачи еще не дошел. Хотя там то осталось чуть...
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 25.02.2013, 13:00   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Abstraction
Что намного интереснее, мне хотелось бы понять, почему ТС не насторожило, что в его коде число 180 так и не встретилось...
ААА! А ведь точно же!! где мои глаза были?!?!!!!
Код:
return 180 - (angleB+angleA);

Цитата:
Сообщение от Abstraction
В отличие от Pascal, C не поддерживает списки аргументов одного типа, тип каждого аргумента следует указывать явно:
Угу. спасибо за поправку. BTW, а если не указывать тип - какой будет? Какой-нибудь универсальный, типа variant? или по умолчанию - int идёт?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.02.2013, 13:02   #8
aurito85
Новичок
Джуниор
 
Регистрация: 25.02.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
В отличие от Pascal, C не поддерживает списки аргументов одного типа, тип каждого аргумента следует указывать явно:
Код:
float remainingAngle(float angleA, float angleB)
Что намного интереснее, мне хотелось бы понять, почему ТС не насторожило, что в его коде число 180 так и не встретилось...
Спасибо! Вечером буду пробовать!
aurito85 вне форума Ответить с цитированием
Старый 25.02.2013, 13:13   #9
aurito85
Новичок
Джуниор
 
Регистрация: 25.02.2013
Сообщений: 4
По умолчанию

Всем откликнувшимся спасибо!

Только начинаю погружение в мир программирования, посему всем откликнувшимся большое спасибо! Буду периодически задавать вопросы!
aurito85 вне форума Ответить с цитированием
Старый 25.02.2013, 14:18   #10
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
BTW, а если не указывать тип - какой будет? Какой-нибудь универсальный, типа variant? или по умолчанию - int идёт?
Я удивлён, что оно скомпилировалось. "По умолчанию", как я понимаю, компилятор должен был счесть AngleA именем типа. В C++ - точно, в C, как мне казалось, тоже. "Универсального" типа в C не существует, единственный тип, который компилятор хотя бы гипотетически может подставить без явного указания - int.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны декартовы координаты вершин треугольника (в плоскости). Разработать проект, вычисляющий площадь и периметр этого треугольника Яночка190 Общие вопросы Delphi 1 12.01.2013 12:49
Дано 3 точки своими координатами х,у. Будет ли они вершинами треугольника. Если да - найти периметр и площадь треугольника Arhi555 Паскаль, Turbo Pascal, PascalABC.NET 2 11.09.2012 17:46
процедуры и функции - возможно ли построение треугольника по длинам сторон, вычисление площади треугольника по длинам сторон kazbek1 Паскаль, Turbo Pascal, PascalABC.NET 2 18.05.2012 10:38
Помогите написать программу нахождения углов треугольника на Delphi _Andruha_ Помощь студентам 3 10.11.2010 09:17
Создание треугольника, сумма двух сторон больше третьей Gyugo Microsoft Office Excel 1 28.01.2010 17:24