Помощь - Поиск - Пользователи - Календарь
Полная версия: Маленикие Вопросы
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
sheka

#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) в паскале. подскажите.
Lapp
Цитата(sheka @ 10.07.2009 1:54) *
не получается сделать присваивание, аналогичное readln(x) в паскале. подскажите.
Уточни: ты хочешь вводить оба числа на одной строке:

123.45 10

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

123.45
10

- ?
sheka
в данный момент - это роли не играет. если можешь, покажи и так и так.
Lapp
Я бы сделал проще:
    scanf("%f%d",&x,&n);

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

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

что-то у меня с вводом не получается. и выводит тоже неизвестно что.
Lapp
Символы новой строки, "\n", в конце формата - лишние, убери их. См. мой предыдущий мессадж.
И пиши более конкретно симптомы ошибки. У меня тут нет компилятора, и не всегда понятно, что ты имеешь в виду.
volvo
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
да, класс.
вроде с этим пока мне хватит.
из первого поста почему-то Warnings не выдавало.

как мне создать новый сpp файл? file->new->empty file и дальше писать свое расширение?
как сделать задержку типа readln; ?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.