IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> Маленикие Вопросы, думаю на Паскале, пишу на Си
sheka
сообщение 10.07.2009 0:54
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +



#include <stdio.h>
main(){
double x;
int n;
printf("vvedi x,n\n");
scanf("%1.6f %1d",&x,&n);
int i;
double a,f1=0;
for(i=0;i<=n;i++){
printf("vvedi a%i\n",i);
scanf("%f",&a);
f1+=x*a;
}
printf("f1=%.6\n",f1);

return(0);
}


не получается сделать присваивание, аналогичное readln(x) в паскале. подскажите.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 10.07.2009 1:11
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(sheka @ 10.07.2009 1:54) *
не получается сделать присваивание, аналогичное readln(x) в паскале. подскажите.
Уточни: ты хочешь вводить оба числа на одной строке:

123.45 10

- или на разных:

123.45
10

- ?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sheka
сообщение 10.07.2009 1:19
Сообщение #3


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


в данный момент - это роли не играет. если можешь, покажи и так и так.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 10.07.2009 1:53
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Я бы сделал проще:
    scanf("%f%d",&x,&n);

Вводить два числа на одной строке через пробел, в конце нажать <enter>.
Полагаю, ты перемудрил с шириной поля. Если тебе она несущественна, то лучше не указывать. Иначе легко ошибиться при вводе.

Добавлено через 2 мин.
Если после каждого числа нажимается <enter>, то так:
    scanf("%f\n%d",&x,&n);


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sheka
сообщение 10.07.2009 2:10
Сообщение #5


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


#include <stdio.h>
#include <math.h>
main(){
double x,eps,a;
int n;
printf("vvedi n,x,eps,a\n");
scanf("%d\n%f\n%f\n%f\n",&n,&x,&eps,&a);

int i;
double f1;
printf("n=%d x=%f eps=%f a=%f \n",n,x,eps,a);
for(i=f1=0;i<=n;i++,f1+=x*a);{
printf("vvedi a%d\n",i);
scanf("%f\n",&a);
};
printf("f1=%1.6f\n",f1);

double f2=0;
for(i=f2=0;a>=eps;i++,f2+=x*a, a--);
printf("f2=%f i=%d \n",f2,i);

return(0);
}

что-то у меня с вводом не получается. и выводит тоже неизвестно что.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 10.07.2009 2:29
Сообщение #6


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Символы новой строки, "\n", в конце формата - лишние, убери их. См. мой предыдущий мессадж.
И пиши более конкретно симптомы ошибки. У меня тут нет компилятора, и не всегда понятно, что ты имеешь в виду.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.07.2009 11:37
Сообщение #7


Гость






sheka, ты когда программу компилируешь, то не только на ошибки, а и на Warning-и смотри, и бойся их как огня... Смотри, что твоя программа из первого поста выдает в предупреждениях:
F:\Programs\CPP\forum_quick_test\console_c\main.c|2|warning: return type defaults to `int'|
F:\Programs\CPP\forum_quick_test\console_c\main.c||In function `main':|
F:\Programs\CPP\forum_quick_test\console_c\main.c|6|warning: unknown conversion type character `.' in format|
F:\Programs\CPP\forum_quick_test\console_c\main.c|6|warning: int format, double arg (arg 2)|
F:\Programs\CPP\forum_quick_test\console_c\main.c|6|warning: too many arguments for format|
F:\Programs\CPP\forum_quick_test\console_c\main.c|11|warning: float format, double arg (arg 2)|
F:\Programs\CPP\forum_quick_test\console_c\main.c|14|warning: unknown conversion type character 0xa in format|
F:\Programs\CPP\forum_quick_test\console_c\main.c|14|warning: too many arguments for format|
||=== Build finished: 0 errors, 7 warnings ===|

С такими предупреждениями запускать программу - только время терять, ясно, что работать она не будет. Исправляем все вышесказанное:
#include <stdio.h>
int main(){
double x;
int n;
printf("vvedi x,n\n");
scanf("%lf %1d",&x,&n);
int i;
double a,f1=0;
for(i=0;i<=n;i++){
printf("vvedi a%i\n",i);
scanf("%lf",&a);
f1+=x*a;
}
printf("f1=%.6lf\n",f1);

return(0);
}
, запускаем и смотрим что получилось...
 К началу страницы 
+ Ответить 
sheka
сообщение 10.07.2009 13:11
Сообщение #8


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


да, класс.
вроде с этим пока мне хватит.
из первого поста почему-то Warnings не выдавало.

как мне создать новый сpp файл? file->new->empty file и дальше писать свое расширение?
как сделать задержку типа readln; ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 13.08.2025 17:54
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"