Модераторы: Poseidon

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> [C++]где ошибка программы, помагите исправить ошибку программы 
:(
    Опции темы
Randol
Дата 25.6.2007, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.6.2007

Репутация: нет
Всего: нет



вообщем дело такое;
начал изучать С++ сомастоятельно. на учебнике было задания найти средную оценку класса,  надо начинать ввести оценки студентов и для оканчаний надо вести -1 и тем самым закочить ввести оценки и вывести средную оценку класса
 на книге было написона так
 
Код
#include<iostream.h>
#include<iomanip.h>
main ()
{
    float average;
    int counter, grade, total;
    total=0;
    counter=0;

    cout << "vedite ocenku ili -1 dlya zoversheniya:";
    cin >> grade;

    while (grade!=-1); {
        total=total+grade;
        counter=counter+1;
    cout << "vedite ocenku ili -1 dlya zoversheniya:";
    cin >> grade;
    }
    if (counter!=0) {
        average= (float)total/counter;
        cout << "srednee znacheniya rovna " <<setprecision (2)
        << setiosflags (ios::fixed | ios::showpoint)
        << average<<endl;
    }
    else 
        cout << "ocenki ne vedeny" <<endl;
        return 0;
    }



(я написал на visual C++ ) жму ctrl+F5 появляется окошка который ведется толька одна оценка, затем enter и ничего больше
подскажите пожалоста в чем ошибка и помагите исправить её
PM MAIL   Вверх
DigitSphinx
Дата 25.6.2007, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: 1
Всего: 3



Код

while (grade!=-1); {
        total=total+grade;
        counter=counter+1;
    cout << "vedite ocenku ili -1 dlya zoversheniya:";
    cin >> grade;
    }

Убери точку с запятой !
У тебя получился бесконечный цикл !



--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
DigitSphinx
Дата 25.6.2007, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: 1
Всего: 3



Если нет других вопросов по программе , пометь тему как решенную (это сверху кнопочка такая )


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
Randol
Дата 26.6.2007, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.6.2007

Репутация: нет
Всего: нет



ок спосиба.
теперь вопрос такой;
надо написать программу которую считает результаты сдачи эгзамена
1 для отметки здачи, 2 для отметки нездачи 
Код
#include <iostream.h>
main ()
{
    int passes=0, fail=0, student=1, result;
    while (student<=10) {
        cout<< "vedite rezultat (1 zdal 2 nezdal)";
        cin>> result;
        if (result==1)
            passes=passes+1;
        else
            fail=fail+1;
        student=student+1;
    }
    cout<< "zdali "<<passes<<endl;
    cout<< "ne zdali "<<fail<<endl;
    if ( passes>8)
        cout<< "povysit oplatu"<<endl;
    return 0;
}



теперь я хотелбы изменить и добавить такие условия
если вести другие цифры кроме 1 или 2 то вывемти сообщения чтота вроде вы вели другие цифры
как это сделать ?

PM MAIL   Вверх
DigitSphinx
Дата 26.6.2007, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: 1
Всего: 3



Цикл будет такой
Код

while (student<=10) 
{
        cout<< "vedite rezultat (1 zdal 2 nezdal)";
        cin >> result;
        if (result==1)
            passes++;
        else if (result == 2)
            fail++;
        else 
        {
            cout << "Error" << endl;
            continue;
        }
        student++;
}



Это сообщение отредактировал(а) DigitSphinx - 26.6.2007, 18:36


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
Xenon
Дата 26.6.2007, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 19
Всего: 50



Так очевиднее smile
Код

while(student <= 10)
{
    cout << "Vvedite rezultat: 1 - sdal, 2 - ne sdal";
    cin >> result;
    switch(result)
    {
    case 1: ++passes; break;
    case 2: --fails; break;
    default: cout << "Error" << endl; continue;
    }
    ++student;
}



--------------------
user posted image  
PM MAIL   Вверх
DigitSphinx
Дата 26.6.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: 1
Всего: 3



Xenon, 
Есть еще очень много способов !
Но человек начинающий а ты ему switch , ++passes   smile 
Кстати что --fails значит ??  smile

Добавлено через 1 минуту и 16 секунд
У тебя может получится количество не сдавших -3  smile  что не есть хорошо  smile  smile 


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
Xenon
Дата 26.6.2007, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 19
Всего: 50




Модератор: Сообщение скрыто.



--------------------
user posted image  
PM MAIL   Вверх
Randol
Дата 12.7.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.6.2007

Репутация: нет
Всего: нет



задача такая;
надо наисать программу которая ведется сторона квадрата и затем ресует "*" символом квадрат.

Код
#include <iostream.h>
#include <iomanip.h>
main()
{
    int row=1, row1=1,a, column=1;
    cout <<"vedite storonu ";
    cin >> a;
    while ( row <a) {
        ++row;
        cout << "*";}
    while ( column <a) {
        ++column;
        cout << "*"<< setw(a-1) << "*" <<endl;
    }
    while (row1<=a) {
        ++row1;
        cout << "*" ;}
    cout<<endl;
    
    return 0;
}

программу я написал. но когда она запускается вместе с квадратом из звездачек "*" верху с правой стороны появляется еще одна "*".
отступ между квадратом и лишной звездачкой меняется зависимости стороны заданной квадрата.
подскажите пожалоста где ошибка программы.
PM MAIL   Вверх
bsa
Дата 12.7.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 1
Всего: 196



Если честно, не понял. Вводится длина стороны?
С форами было бы намного понятней:
Код
#include <iostream>
#include <iomanip>
using namespace std;
main()
{
    int a;
    cout <<"vedite dlinu storony: ";
    cin >> a;
    for(int i = 0; i < a; ++i)
        cout << "*";
    cout<<endl;
    for(int i = 0; i < a-2; ++i)
        cout << "*"<< setw(a-1) << "*" << setw(1) <<endl;
    for(int i = 0; i < a; ++i)
        cout << "*";
    cout<<endl;
    
    return 0;
}
А проблема со звездочкой была из-за того, что ты не сделал конец строки после рисования горизонтальной стороны.
PM   Вверх
JackYF
Дата 12.7.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Вот, переделал немного:
Код

#include <iostream.h>
#include <iomanip.h>
int main()
{
   int row=1, row1=1,a, column=1;
   cout <<"vedite storonu ";
   cin >> a;
   while ( row <=a) {
      ++row;
      cout << "*";
   }
   cout << "\n";
   while ( column <a-1) {
      ++column;
      cout << "*"<< setw(a-1) << "*" <<endl;
   }
   while (row1<=a) {
      ++row1;
      cout << "*" ;
   }
   cout<<endl;

   return 0;
}




--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Randol
Дата 14.7.2007, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.6.2007

Репутация: нет
Всего: нет



ясно, спосибо.
и вот еще:
некак немогу написать программу которую печатает триугольник из "*".  Чтота вроде такого

*
**
***
****
*****
******

если нетрудно подскажите как надо сделать или напишите ее цикл.
PM MAIL   Вверх
Dov
Дата 14.7.2007, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88



Код

void Triangle(int n)
{
    if(n > 1)
        Triangle(n - 1);
    for(int i = 0; i < n; i++)
        cout << '*';
    cout << endl;
}

int main()
{
    Triangle(6);

    return 0;
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Randol
Дата 19.7.2007, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.6.2007

Репутация: нет
Всего: нет



всем спасибо за помощ.
потскажите пожалоста как будет оператор который будет печатать случайно выбронное число из набора.
набор дапустим может бать такой: 2, 4, 6, 8,10.
PM MAIL   Вверх
bsa
Дата 19.7.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 1
Всего: 196



Код
#include <stdlib.h>
...
array[(int) (array_size * (rand() / (RAND_MAX + 1.0)))];
где array - это "набор" (массив значений)
array_size - количество значений в "наборе"
PM   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0611 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.