Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2010, 20:36   #1
olegnaum
Пользователь
 
Регистрация: 21.11.2009
Сообщений: 12
По умолчанию В чем ошибка?

учусь программировать на си с помощью dev c++ вот программка (ошибок нет а вылетает после ввода третьей переменной); если не трудно подскажите в чем моя ошибка ?

#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
float chislo, shag, z;
int n, k;
char napravlenie;
printf("Программка для расчета суммы определенного количества чисел распределенных \n");
printf("через n-й шаг\n");
printf ("Введите начальное положительное число:\n");
scanf ("%f", &chislo);
printf ("Введите шаг между числами:\n");
scanf ("%f", &shag);
printf ("Введите количество чисел, которые входят в сумму подсчета:\n");
scanf("%i", &n);
printf("Введите направление продсчета : влево от заданного числа \"-\" \n");
printf("или вправо от него \"+\"\n");
scanf("%c", &napravlenie);
if (napravlenie=='+'){
for(z=chislo; n<=k ; k++){
k++;
z=z+shag;
chislo=chislo+z;}
printf(" Суммма чисел вашего диапазона равна %f", chislo);getch();}
else if (napravlenie=='-'){
for(z=chislo; n<=k ; k++){
if(z<=0){
break;
printf("Диапазон ваших вычислений переступил ноль и сумма положительных\n");
printf("чисел равна %f", chislo);
getch();}
else {
k++;
z=z-shag;
chislo=chislo+z;}
printf("Суммма чисел вашего диапазона равна%f", chislo);getch();}
}}

Может в настройках компилятора что-то не сделал?
честно говоря задачку придумал сам может что не так(извиняйте)
olegnaum вне форума Ответить с цитированием
Старый 02.02.2010, 20:38   #2
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Вместо
Код:
scanf("%i", &n);
напиши
Код:
scanf("%d", &n);
profi вне форума Ответить с цитированием
Старый 02.02.2010, 20:50   #3
olegnaum
Пользователь
 
Регистрация: 21.11.2009
Сообщений: 12
По умолчанию

все равно окно программы сворачивается
olegnaum вне форума Ответить с цитированием
Старый 02.02.2010, 21:40   #4
jokz
 
Регистрация: 27.01.2010
Сообщений: 8
По умолчанию

запускай из CMD, и не будет сворачиваться. Либо поставь после последнего printf()

Код:
system("PAUSE");
jokz вне форума Ответить с цитированием
Старый 02.02.2010, 22:04   #5
olegnaum
Пользователь
 
Регистрация: 21.11.2009
Сообщений: 12
По умолчанию

я совсем недавно начал осваивать си может что и не понимаю, но судя по учебникам эта программка должна работать при любом количестве "printf". Я вставил system("PAUSE"); но тогда окно закрывается при нажатии любой клавиши, а как работать с CMD я честно говоря еще не знаю.Но ведь суть то в том что программа должна работать с компилятора, ведь так?
olegnaum вне форума Ответить с цитированием
Старый 02.02.2010, 22:18   #6
jokz
 
Регистрация: 27.01.2010
Сообщений: 8
По умолчанию

если я правильно понял, то дело не в программе и не компиляторе. Просто любое консольное приложение, после вывода данных закрывается.
Попробуй Пуск - выполнить- введи "cmd"
откроется терминал. там пропиши путь до файла программы

>"C:/program.exe"
jokz вне форума Ответить с цитированием
Старый 02.02.2010, 22:40   #7
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Код:
#include<stdio.h>
#include<conio.h>
#include<math.h>

using namespace std;

int main()
{
 float chislo, shag, z, n, k, m, s;
 char napravlenie;
 
 printf("Программка для расчета суммы определенного количества чисел распределенных через n-й шаг\n");
 printf ("Введите начальное положительное число: ");
 scanf ("%f", &chislo);
 printf ("Введите шаг между числами: ");
 scanf ("%f", &shag);
 printf ("Введите количество чисел, которые входят в сумму подсчета: ");
 scanf("%f", &n);
 printf("Введите направление продсчета : влево от заданного числа \"-\" или вправо от него \"+\":");
 scanf("%s", &napravlenie);
 
 if (napravlenie == '+')
    {
     for(z = chislo, s = 0; z <= n;  s += z, z += shag);
     
     printf("Суммма чисел вашего диапазона равна %f", s);
     getch();
    }
    
 if (napravlenie == '-')
    {
     for(z = chislo, s = 0, m = 0; ((z > 0) && (m <= chislo)); s += z, z -= shag, m += shag);

           printf("Суммма чисел вашего диапазона равна %f", s);
           getch();
     }
     
     return 0;
}

Последний раз редактировалось profi; 02.02.2010 в 23:17.
profi вне форума Ответить с цитированием
Старый 03.02.2010, 12:58   #8
olegnaum
Пользователь
 
Регистрация: 21.11.2009
Сообщений: 12
По умолчанию

Огромное спасибо всем ответившим!!! Все ОК
olegnaum вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем ошибка? Beka Помощь студентам 11 25.11.2009 15:36
В чем ошибка? hitman12 Паскаль, Turbo Pascal, PascalABC.NET 13 04.11.2009 12:38
В чем ошибка? AleNa666 Паскаль, Turbo Pascal, PascalABC.NET 2 28.04.2009 14:28
В чем ошибка!!! juden Общие вопросы Delphi 12 10.03.2008 08:53
в чем ошибка? Lonix Общие вопросы Delphi 2 24.03.2007 09:41