Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
2 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 82
1

Исправить ошибку деления на ноль

11.04.2010, 19:31. Показов 1774. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Составьте программy циклической структуры типа for
Название: Image1410.gif
Просмотров: 202

Размер: 1,006 байт
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <math.h>
#include <conio.h>
main()
{
int n,i,x;
float S;
printf("\n введите n  ");
scanf("%d", &n);
for (S=0,x=8, i=1, i<=n; i++;)
S+=x*x/(2*i);
printf("\n n=%d S=%d", n,S);
scanf("%d%f", &n,&S);
getch();
 
}
непонятно с переменной (х)? В условии про нее ничего не сказано. Может сделать ее константой или сделать ввод с клавиатуры или просто присвоить значение.
При запуске моих каракуль выдает ошибку Divide error(Вы пытаетесь разделить целое значение на 0) Вообщем подскажите что я сделал не так? И как с поступить с (х)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2010, 19:31
Ответы с готовыми решениями:

Ошибка деления на ноль
Ув. программисты! Помогите решить проблему: программа работает, но когда ввожу значение e=0.001...

Структура: Не могу понять, почему выдает ошибку и как собственно эту ошибку можно исправить?
Привет,не могу понять почему ошибку выдает и как сбстно эту ошибку можно исправить? #include...

Частное двух чисел (найти ошибку, выдает ноль)
Помогите найти ошибочку, выдает 0 int main () { int x, a, b; float cha; ...

Обработать ошибку деления на ноль
Sub пример_2() Dim x As Single, y As Single, z As Single x = 0.17 y = 10 ^ 2 z = (((x ^ 3 - y ^...

13
10 / 10 / 5
Регистрация: 08.07.2009
Сообщений: 34
11.04.2010, 19:50 2
C++
1
for (S=0,x=8, i=1;i<=n; i++)
попробуй это

у тебя чтото непонятное с аргументами цикла получается. (имхо)
1
2 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 82
11.04.2010, 19:59  [ТС] 3
C++
1
for (S=0,x=8, i=1, i<=n; i++;);
результат s=0 почемуто
а что по поводу переменной х скажешь?
0
14 / 14 / 5
Регистрация: 10.02.2010
Сообщений: 72
11.04.2010, 20:32 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main()
{
int n,i,x;
float S=0;
scanf("%d", &x);
printf("\n введите n  ");
scanf("%d", &n);
for(i=1; i<=n; i++)
S+=x*x/(2*i);
printf("\n S=%f",S);
getch();
 
}
1
2 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 82
12.04.2010, 11:00  [ТС] 5
тут тоже что то не так ответ неправильный выдает
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
12.04.2010, 11:20 6
Лучший ответ Сообщение было отмечено как решение

Решение

C
1
2
for(i = 1; i <= n; i++)
     S+=pow(x, 2)/(2*i);
1
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
12.04.2010, 11:43 7
Составьте программy циклической структуры типа for
Это не циклическая а так на два рубля 50 копеек.

Вот циклическая поинтереснее:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for(;;){
 
      for(;;) {   while(....){}   }
    
      while(...){  for(;;) {} goto metka; }
 
      if(...)for(;;) {   
             switch(...)                  {
             case 1 :  som_op;break;
             case 2 :  som_op;break;
             case 3 :  som_op;break;}
                       }
}
metka: f();
Извините за флуд, несдержанный иногда бываю.

Добавлено через 4 минуты
А примечание это псевдокод...
0
2 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 82
12.04.2010, 12:02  [ТС] 8
Цитата Сообщение от Vorona Посмотреть сообщение
C
1
2
for(i = 1; i <= n; i++)
     S+=pow(x, 2)/(2*i);
все равно ответ неверный как то неправильно все считается

Добавлено через 3 минуты
Genius Ignat вообще задание звучит так:Составьте 3 варианта программ циклической структуры типа for , while, do…while и сравните полученные результаты.
я начал с первого
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
12.04.2010, 12:09 9
я проверил, работает
х = 2
n = 5
ответ 4.566667
(2*2) / (2*1) = 4/2 = 2
(2*2) / (2*2) = 4/4 = 1
(2*2) / (2*3) = 4/6 = 0.666667
(2*2) / (2*4) = 4/8 = 0.5
(2*2) / (2*5) = 4/10 = 0.4
2+1+0.666667+0.5+0.4 = 4.566667
1
10 / 10 / 5
Регистрация: 08.07.2009
Сообщений: 34
12.04.2010, 12:54 10
а что выдает то хоть?
накарябал на с++ вот что выдает:
Type x: 8
Type n: 10
Step #1: S=0
Step #2: S=32
Step #3: S=48
Step #4: S=58.6667
Step #5: S=66.6667
Step #6: S=73.0667
Step #7: S=78.4
Step #8: S=82.9714
Step #9: S=86.9714
Step #10: S=90.527
1
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
12.04.2010, 13:27 11
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

S не можеть быть равной 0, т.к. отчет i начинается с 1
вобщем, вот правильная программа:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main(){
    int n, i, x;
    float S = 0;
    printf("Enter x: ");
    scanf("%d", &x);
    printf("Enter n: ");
    scanf("%d", &n);
    for(i = 1; i <= n; i++)
        S += pow(x, 2) / (2 * i);
    printf("S=%f\n", S);
    getch();
}
теперь потренируйся с while() и do{} while()
1
2 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 82
12.04.2010, 16:50  [ТС] 12
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main()
{
clrscr ();
int n,i,x;
float S=0;
printf("\ введите x ");
scanf("%d", &x);
printf("\n введите  n  ");
scanf("%d", &n);
for (i=1; i<=n; i++);
S+=pow(x,2)/(2*i);
printf("\n S=%f",S);
scanf("%f",&S);
getch();
return 0;
}
С значением х=2 n=5 s=0.33333

Добавлено через 8 минут
дык и меня все так же а ответ не правильный

Добавлено через 2 минуты
щас попробую один в один как у тебя

Добавлено через 1 час 8 минут
результат тот же при тех же параметрах S=0.333333
0
7 / 7 / 3
Регистрация: 11.04.2010
Сообщений: 25
12.04.2010, 17:56 13
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <math.h>
#include <iostream.h>
void main()
{
int n,i,x;
double s=0;
cout<<" Enter  n, x \n";
cin>>n>>x;
for(i=1; i<=n; i++)
{s+=pow(x,2)/(2*i);}
 cout<<"s = ";
 cout<<s;}
вот с while
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <math.h>
#include <iostream.h>
void main()
{
int n,i=1,x;
double s=0;
cout<<" Enter  n, x \n";
cin>>n>>x;
while ( i<=n)
{s+=pow(x,2)/(2*i);
i++;}
 cout<<"s = ";
 cout<<s;}

и do while
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <math.h>
#include <iostream.h>
void main()
{
int n,i=1,x;
double s=0;
cout<<" Enter  n, x \n";
cin>>n>>x;
do
{s+=pow(x,2)/(2*i);
i++;}
while ( i<=n);
cout<<"s = ";
 cout<<s;}

результаты во всех трех программах при n=5 x=2 s=4.56667
1
2 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 82
12.04.2010, 22:12  [ТС] 14
Спасибо всем все работает!
0
12.04.2010, 22:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2010, 22:12
Помогаю со студенческими работами здесь

Обработать ошибку деления на ноль
Проблема в том, что при последующих выполнениях программы выскакивает эта ошибка, в отличие от...

Обработать ошибку деления на ноль
Подскажите, какое изменение в программу нужно ввести, чтобы при введении нуля выдавало сообщение об...

Игнорировать ошибку деления на ноль
можно ли при переборе чисел от -10 до 10, например в k/k-2, сделать чтобы при k=2 ошибка не...

Почему выдаёт ошибку деления на ноль?
x=5.39121*10**-44 y=1.616252*10**-35 z=3.0856776*10**28 r=x*y/(z-(z*z+y*y)**0.5) rОнлайн...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru