Другие языки программирования и технологии

программа на С. Вывести значение. (Несложно. попробуйте)

Правильно ли сделал? не знаю что значат эти знаки все.. проверьте Напишите программу выводящую на экран значения выражения (в картинке сверху), пока его значение не превысит 1000 Код. #include <stdafx.h> #include <stdio.h> #include <math.h> #include <conio.h> void main(){ float k=1; float y=0; while(y<1000){ y=pow(3*k,2); k++; y+=y; printf("\ny=%.3f",y); } getch(); }
Во-первых, непонятно, зачем вы используете числа с плавающей запятой, когда скорей всего выражение считается для целых чисел.
Во-вторых, в С функция main должна возвращать тип значения int то есть правильное объявление функции main следующее

int main( void )

В-третьих у вас неправильно считается сумма y

y=pow(3*k,2);
k++;
y+=y;

То есть вы сначала вычислили y y=pow(3*k,2);, а затем его УДВОИЛИ: y+=y;

Я бы написал программу проще для целых чисел

#include <stdio.h>
#include <conio.h>

int main( void )
{
int k;
int sum

sum = 0;

for ( k = 1; sum < 1000; k++ ) sum += 27 * k * k * k; /* 3 в кубе равно 27 /

printf( "сумма равняется %d\n", sum );

getch();

return ( 0 );
}
МК
Максим Киселев
79 586
Лучший ответ
Уже в условии бред. Значение "выражения в картинке" равно бесконечности.
Следовательно, правильная программа, выводящая значение этого выражения, если оно меньше 1000, будет
main(){}
Если хотят выводить частичные суммы ряда, пусть напишут условие правильно.
Алпамыс Галиев
Алпамыс Галиев
55 734
..y+=pow(3*k,3)
Третья степень))).
Косолапов Юрий
Косолапов Юрий
35 996
int main()
{
unsigned long long i;
unsigned long long y=0;

for (i = 1; i <= 1000; i++ )
{
y += 27 * i * i * i;
}
printf("\ny=%ul",y);

}
getch();
}
Виталий Рябкин
Виталий Рябкин
30 477
неправильно.
должно быть примерно
y=pow(3*k,2);

while(y<1000){
y+=pow(3*k,2);
k++;
printf("\ny=%.3f",y);

}

и кстати, степень у тебя третья на картинке, а ты в квадрат возводишь

Похожие вопросы