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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2007, 12:36   #1
Look
 
Регистрация: 03.11.2007
Сообщений: 7
По умолчанию Что с кодом ?

Изучаю С+++ всего месяц, поэтому немогу понять, почему неработает данный код
Код:
#include <fstream>;
using namespace std;
int main()
{
   ofstream out;
   ifstream in;
   in.open("input.in");
   out.open("output.out");
   int a,b,i,c;
   in>>a;
   if (a=1)
   {
   b=0;}
   else{
   b=2;
   while (c!=a){
   c=1;
   i=b;
   while (i>1){
     c*=i;
     --i;}
   ++b;
   }
   --b;
   }
   out << b;
   out.close();
   in.close();
   return 0;
}
Этот код должен считывать число a из файла input.in и записывать в файл output.out число b, для которого а является факториалом, вместо этого числу b присваевается значение 0, а в окне предупреждений висит надпись
Цитата:
[C++ Warning] antifaktorial.cpp(11): W8060 Possibly incorrect assignment
Пожалуйста, обьясните, что в этом коде нетак.
З.Ы. запускал на C++ Builder6
Look вне форума Ответить с цитированием
Старый 03.11.2007, 12:58   #2
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Насколько я ещё помню С++, то равно пишется "==", а не "=", т.е. исправляем строчку:
"if (a=1)"
на
"if (a==1)"
zetrix вне форума Ответить с цитированием
Старый 03.11.2007, 13:13   #3
Look
 
Регистрация: 03.11.2007
Сообщений: 7
По умолчанию

Спасибо, ты меня спас.
Look вне форума Ответить с цитированием
Старый 04.11.2007, 17:53   #4
Rembo
Форумчанин
 
Аватар для Rembo
 
Регистрация: 29.10.2007
Сообщений: 628
Вопрос

Помогите, почему не работает эта самая, самая в мире простая программа
Код:
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{
    int x1;
    cout << "Vvidite x1";
    cin >> x1;
    
    int x2;
    cout << "Vvidite x2";
    cin >> x2;
    if (x1 > x2);
    {cout << "x1 bol'she chem x2";         
    }
    else
    { 
    cout << "x1 men'she chem x2";
    }
    
    system("PAUSE");
    return 0; 
}
Rembo вне форума Ответить с цитированием
Старый 04.11.2007, 18:01   #5
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

if (x1 > x2); - убери ;
_Dmitry вне форума Ответить с цитированием
Старый 04.11.2007, 18:03   #6
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Может и оффтоп, но нафига во это:
int main(int nNumberofArgs, char* pszArgs[])
?
zetrix вне форума Ответить с цитированием
Старый 04.11.2007, 18:44   #7
Rembo
Форумчанин
 
Аватар для Rembo
 
Регистрация: 29.10.2007
Сообщений: 628
Хорошо

Цитата:
Сообщение от _Dmitry Посмотреть сообщение
if (x1 > x2); - убери ;
Большое спасибо... А не подскажите когда надо ставит ; а когда не надо?
Цитата:
Сообщение от zetrix Посмотреть сообщение
Может и оффтоп, но нафига во это:
int main(int nNumberofArgs, char* pszArgs[])
?
Я не знаю.... Так в книге написано было....
Rembo вне форума Ответить с цитированием
Старый 04.11.2007, 19:06   #8
merax
Форумчанин
 
Регистрация: 27.12.2006
Сообщений: 955
По умолчанию

По идее эти параметры можно выкинуть фтопку... так как в такой проге они не нужны... а так маленький ликбез

Первый int -- тип, возвращаемый в результате работы функции. Это как правило код ошибки, или 0, если таковой в ходе работы приложения не возникло.

int nNumberofArgs, char* pszArgs [] - параметры функции. Но это не обычная функция, а главная, поэтому и параметры её так же не обычны.

1. Количество аргументов командной строки -- int nNumberofArgs (размерность массива pszArgs []);
2. Указатель на массив аргументов командной строки -- char* pszArgs []

Например, Вы запускаете свою программу таким образом:
test.exe param1 param2… Вот param1, param2 аргументы, которые хранятся в массиве char* pszArgs []. Причем, в первом элементе этого массива (pszArgs [0]) всегда будет храниться имя программы (и полный путь до неё, если она запускается не из своей папки), в данном случае test.exe

И на будущее научись различать возвращаемые функцией значения...
merax вне форума Ответить с цитированием
Старый 05.11.2007, 15:20   #9
Look
 
Регистрация: 03.11.2007
Сообщений: 7
По умолчанию

Что то странное творится: поправил знак равенства, всё работало, но через некоторое время программа работать перестала вообще, не выдаёт ошибок или предупреждений. Не создаёт файл output.out,пробовал переустановить сиплюсплюс, непомогло, в чём может быть проблема?
Look вне форума Ответить с цитированием
Старый 05.11.2007, 15:25   #10
merax
Форумчанин
 
Регистрация: 27.12.2006
Сообщений: 955
По умолчанию

Видимо в ДНК... Выложи полный код (но перед этим добавь
Код:
#include <conio>
) и перед
Код:
return(0)
добавь
Код:
getch();
И если не заработает выкладывай код...

Последний раз редактировалось merax; 05.11.2007 в 15:30.
merax вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с кодом( DM_bite Помощь студентам 3 02.08.2008 20:02
Помогите с кодом DM_bite Помощь студентам 12 02.08.2008 11:40
Помогите с кодом prostoCHEL Общие вопросы Delphi 4 02.03.2008 21:56
Не понятно с кодом Михаил Юрьевич Общие вопросы Delphi 2 08.02.2008 08:07