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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2009, 16:09   #1
Nina+
Пользователь
 
Регистрация: 19.11.2008
Сообщений: 39
По умолчанию Помогите пожалуйста найти ошибку (С\С++)

Помогите пожалуйста. Я только начала изучать С. Никак не могу понять, почему в программе всегда получается один и тот же результат...
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double f(double a,double b){
return (a*2+b/5+sin(a+b));
}
main(){
double z,x,y;
printf("Введите x и y\n");
scanf("%d",&x);
scanf("%d",&y);
z=f(x,0)+2*f(y,1)+2*f(x,y);
printf("z=%d\n",z);
system("PAUSE");
return 0;
}
Nina+ вне форума Ответить с цитированием
Старый 18.02.2009, 16:57   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Nina+
У вас переменные x,y,z типа double, а вы их читаете и выводите как int.
Исправьте %d на %lf.
Вот так:
Код:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double f(double a,double b)
{
 return (a*2+b/5+sin(a+b));
}
int main(){
double z,x,y;
printf("Enter x and y\n");
scanf("%lf %lf",&x,&y);
z = f(x,0) + 2*f(y,1) + 2*f(x,y);
printf("z=%lf\n",z);
system("PAUSE");
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 18.02.2009, 20:10   #3
Nina+
Пользователь
 
Регистрация: 19.11.2008
Сообщений: 39
По умолчанию

спасибо! я пробовала писать %f это вроде тоже для типа double используется... ???
Nina+ вне форума Ответить с цитированием
Старый 18.02.2009, 20:12   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
я пробовала писать %f это вроде тоже для типа double используется... ???
%f - для float
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 19.02.2009, 21:40   #5
Nina+
Пользователь
 
Регистрация: 19.11.2008
Сообщений: 39
По умолчанию

Посмотрите пожалуйста ещё эту прогр.
Задание:
С клавиатуры вводится текст в следующем формате:
Длина=125см, ширина=10см
Определить площадь прямоугольника, выделив числа из текста.

#include<stdio.h>
#include <stdlib.h>
main()
{char s1[7],s2[4],s3[8],s4[3];
int a,b;
printf("Введите длину и ширину\n");
scanf("%s %d %s %s %d %s", s1, &a, s2, s3, &b, s4);
printf("Площадь = %d\n", (2*a+2*b));
system("pause");
return 1;
}

Здесь возможно написан полный бред... Каким образом можно выделить числа из текста???
Nina+ вне форума Ответить с цитированием
Старый 19.02.2009, 21:52   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Все намного проще )
Код:
#include<stdio.h>
#include <stdlib.h>
main()
{
int a,b;
printf("Введите длину и ширину\n");
scanf("Длина=%dсм, ширина=%dсм",&a,&b);
printf("Площадь = %d\n", a*b);
system("pause");
return 0;
}
А вот формула для площади действительно напоминает бред )
S = a*b

--------
Используйте тег CODE для выделения кода.
И еще, по правилам, одна программа=одна тема.
Пожалуйста, учтите в следующий раз.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 19.02.2009, 22:30   #7
Nina+
Пользователь
 
Регистрация: 19.11.2008
Сообщений: 39
По умолчанию

Спасибо, действительно просто.
... с периметром перепутала
Nina+ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программисты, помогите найти ошибку, пожалуйста... okgo Общие вопросы Delphi 11 19.02.2009 21:55
Помогите пожалуйста найти и исправить ошибку Sam04 Паскаль, Turbo Pascal, PascalABC.NET 4 10.06.2008 08:28