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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2012, 19:14   #1
zink
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 36
По умолчанию MVS 2010 выдает ошибку и вылетает при компиляции

Суть в том, что на учебе, моя программа работает только за одним компьютером, дома же и на других компьютерах выдает ошибку о каком-то исключении. предлагает перезапуск VS или поиск проблем в интернете, причем в коде при компиляции ругается только на getch(); В чем проблема?

программа считает факториал числа n, перемножая числа столбиком. Работает для 15! дальше выдает неверные результаты. Исправить и проверить, которые я не могу из-за ошибки

#include <iostream>
#include "stdafx.h"
#include "math.h"
#include "conio.h"
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <vector>
#include <fstream>
#include <clocale>
#include <iostream>

using namespace std;

void main()
{

int len=1,A[200],C[4][200],B[3]={0,0,1},k,k1,k10,z,l1,l10,f1,f10,m ,n;


cout<<" VVedite n"<<endl;
cin>>n;

for(int b=0;b<4;b++)
for(int n=0;n<200;n++)
C[b][n]=0;
for (int b=0;b<200;b++)
A[b]=0;

A[0]=1;

for (int c=1;c<n+1;c++)
{
for(int i=0;i<3;i++)
{
k10=0;z=0;l1=0;l10=0;f1=0;f10=0;

for(int j=len-1;j>-1;j--)
{
k=A[j]*B[i];

k1=k%10;
if (k1+k10>9)
{
l1=(k1+k10)%10;
l10=(k1+k10-l1)/10;
C[i][j+1+i]=l1;
k10=(k-k1)/10;
z=C[i][j+i]=k10+l10;
}
else
{
C[i][j+1+i]=k1+z;
k10=(k-k1)/10;
z=C[i][j+i]=k10;
}
}
}


for (int q=0;q<3;q++)
for (int w=0;w<len+3;w++)
C[q+1][w]=C[q+1][w]+C[q][w];


for (int ii=0;ii<4;ii++)
{
cout<<endl;
for (int jj=0;jj<len+3;jj++)
cout<<C[ii][jj]<<" ";
}

cout<<endl;

if(len>12)
for(int h=0;h<len+3;h++)
cout<<C[3][h]<<"___";
cout<<endl;

for (int t=len+3;t>-1;t--)
if (C[3][t]>9)
{
if(len>12)cout<<C[3][t]<<" -C[3]["<<t<<"]"<<endl;
f1=C[3][t]%10;
if(len>12)cout<<f1<<" -f1"<<endl;
f10=(C[3][t]-f1)/10;
if(len>12)cout<<f10<<" -f10"<<endl;
C[3][t]=f1;

C[3][t-1]=C[3][t-1]+f10;

}


int d=0;
while (C[3][d]==0)
{
m++;
d++;
}


for (int v=m;v<len+3;v++)
A[v-m]=C[3][v];
len=len+3-m;
m=0;



for(int b=0;b<4;b++)
for(int n=0;n<200;n++)
C[b][n]=0;

B[2]=B[2]+1;

for(int y=2;y>0;y--)
if (B[y]>9)
{

l1=B[y]%10;
l10=(B[y]-l1)/10;
B[y]=l1;
B[y-1]=l10+B[y-1];
}

}

cout<<"Factorial "<<n<<":"<<endl;
for (int i=0;i<len;i++)
cout<<A[i]<<" ";

getch();
}
zink вне форума Ответить с цитированием
Старый 29.11.2012, 23:32   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Работает для 15! дальше выдает неверные результаты.
Открыть первые главы учебника по информатике и прочитать про размеры типов. Осознать, что факториал быстрорастущая функция.

Выучить, что, если используется, то
Код:
 #include "stdafx.h"
всегда идет первым им не писать индокод
Код:
#include <iostream>
 #include "stdafx.h"
 ...
 #include <iostream>
 ...
 #include <iostream>
p51x вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При компиляции Win32 проекта сразу выдает ошибки Mary_1894 Visual C++ 2 14.10.2012 18:12
Ошибка при компиляции (ZEOS + Delphi 2010) Prontit БД в Delphi 11 20.03.2012 03:28
Ошибка при компиляции в Visual C++ 2010 Jugger Помощь студентам 1 18.01.2011 21:13
Visual Studio 2010, при запуске на debug или rebuild вылетает ошибка Evgeniy1989 Общие вопросы .NET 1 20.08.2010 08:34
Ошибка в алгоритме?Выдает ошибку после компиляции. Aerial Общие вопросы C/C++ 2 12.05.2010 16:52