#c
#c
Вопрос:
В настоящее время я разрабатываю код для university, который округляет число, но без использования математической библиотеки на c.
Вот что я сделал:
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
double arrd(double x, int n);
int main()
{
double value;
int n;
printf("Insert a value: ")
scanf("%lf", amp;value);
printf("Insert n: ");
scanf("%d", amp;n)
printf ("%f", arrd( value, n));
return 0;
}
double arrd(double x, int n){
double r = x;
double s = 1;
int e = 0;
while (e != (n 1)){ /*This is to get to the last number before rounding*/
s= s * 10;
r = r*10 - int(r); /*This is where is giving me the error*/
e ;
};
r=r*10;
if (r<5){
return x-r*(1/s);
} else {
return x-r*(1/s) (10/s);
}
}
Это говорит о том, что ожидается выражение, в r = r * 10 — int(r). Что мне делать?
Я новичок в программировании, но если есть что-то неправильное в остальной части кода, что я могу улучшить, дайте мне знать.
Спасибо
Комментарии:
1. Для явного преобразования значения в другой тип используется следующий синтаксис
(type)value
. В вашем случае вы хотите(int)r
(неint(r)
).2. Да, конечно! Большое вам спасибо!
3. опубликованный код не компилируется!. Компилятор выдает несколько сообщений об ОШИБКАХ и несколько предупреждающих сообщений. Пожалуйста, исправьте. Одна из ошибок заключается в этом утверждении:
scanf("%d", amp;n)
в котором отсутствует завершающая точка с запятой ‘;’4. OT: относительно:
#include <stdio.h> #include <stdio.h>
Нет абсолютно никакой необходимости включать файл заголовка более одного раза. Фактически заголовочные файлы (включают системные заголовки) имеют «защиту включения», поэтому их содержимое будет включено только один раз, независимо от того, сколько раз для заголовка используется#include
инструкция5. OT: отступ в коде сделан для удобства чтения человеком. отступ в 2 пробела будет скрыт при использовании шрифтов переменной ширины. Предложите, чтобы каждый уровень отступа составлял 4 пробела
Ответ №1:
Это
int(r)
Недопустимый синтаксис для приведения значения к int
. Это делается следующим образом:
(int)r
Комментарии:
1. Обратите внимание, что C поддерживает
int(r)
обозначение, или, по крайней мере, когда-то давным-давно (скажем, C 98); возможно, оно устарело, но я сомневаюсь, что его уже удалили. Однако C никогда не поддерживал эту нотацию.