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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2013, 23:22   #1
IgoreKMaN
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 88
Сообщение Вместо букв выводит не понятные символы

Доброго всем вечера! при запуске функции arefm()
Код:
cout<<stud[n].name<<"Средне арифметическое баллов по экзаменам  "<< z[i]<<"\n\n";
подсчитывается средне арифметическое и выводит имя студента, но вместо букв показывает что то не понятное... подскажите в чем проблема...
Код:
#include <iostream>
#include <fstream>
#include <locale.h>
#include <conio.h>
#include <windows.h>
using namespace std;
 
    int n=300,i,c,j;
    double *z=new double[n];
 
    //сортировка
    void sort()
        {
 
 double tmp;
    for(int i = 0; i < n - 1; ++i) 
    {            
        for(int j = 0; j < n - 1; ++j) 
        {     
            if (z[j + 1] > z[j]) 
            {
                tmp = z[j + 1]; 
                z[j + 1] = z[j]; 
                z[j] = tmp;
                
            }
    for (j=0; j<n;j++)
    {cout<<"Ответ:   "<<z[j]<<endl;}        }
    
    }
};
 
    // структура студент
    struct  Student
{ 
    char name[15], familia[20];
    double fiz, matem, inform;
};
    
    
    
        int arefm()
 
    {Student  *stud;
    stud=new Student[n];
    
    //setlocale (LC_CTYPE, "Russian");
        for(i = 0; i < n; ++i)
   
   {    cout<<stud[n].name<<"Средне арифметическое баллов по экзаменам  "<< z[i]<<"\n\n";
    cout<<"\n\n";}
    return 0;
    };
        
void menu()  
{  
 //setlocale(LC_CTYPE, "Russian");//необходимо для вывода русских букв
 system("cls");   fflush(stdin);//очистка буфера
//рисуем меню
cout << "                Меню программы:" << endl;
cout << "  1 – Вывод средне арифметического" << endl;
cout << "  2 – Сортировка"<< endl;
cout << "  3 – Выход." << endl;
cout << "" << endl;
 
for(;;)//организуем работу меню
 {
    switch(getch())       
        {
        case '1': arefm();       break;
        case '2': sort();        break;
        case '3': exit(0);
        default: puts ("Неправильный выбор, повторите еще раз"); break;
        }
 }
}
 
 
int main()
{
    system("chcp 1251");
 
Student  *stud;
    stud=new Student[n];
    
    cout<<"Введитек оличество студентов \n";
    cin>>n;
    int v;
    
    ofstream f("C:\\1.txt");
 
    for (i=0;i<n;i++)
    
    {
    cout<<"Введите имя студента\n";
    cin>>stud[n].name;
    cout<<"Введите фамилию студента\n";
    cin>>stud[n].familia;
    cout<<"Отметки за экзамены\n\n"<<"Физика:  \n";
    cin>>stud[n].fiz;
    cout<<"Математика:    \n";
    cin>>stud[n].matem;
    cout<<"Инорматика:   \n";
    cin>>stud[n].inform;
    cout<<"\n\n";
    
    z[i]=(stud[n].fiz+stud[n].matem+stud[n].inform)/3;
    z[i]=ceil(z[i]*10)/10;
    
    f<<stud[n].name<<"\t"<<stud[n].familia<<"\t\t"<<z[i]<<endl;
    
    }
    
    f.close();
    menu();
    
return 0;
}
IgoreKMaN вне форума Ответить с цитированием
Старый 06.04.2013, 13:07   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Тыц

Последний раз редактировалось ACE Valery; 06.04.2013 в 16:27.
_Bers вне форума Ответить с цитированием
Старый 06.04.2013, 13:26   #3
IgoreKMaN
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 88
По умолчанию

это что????
IgoreKMaN вне форума Ответить с цитированием
Старый 06.04.2013, 13:45   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

_Bers криво исправил ссылку (эти пробелы, влезающие в текст, начинают раздражать).
клик ми
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 06.04.2013, 14:56   #5
IgoreKMaN
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 88
По умолчанию

не то.... не помогло, ниче похожего нету..
IgoreKMaN вне форума Ответить с цитированием
Старый 06.04.2013, 15:02   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
int main()
{
    //system("chcp 1251");
    setlocale(LC_CTYPE, "Russian");
У меня стало выводить русские буквы (Code::Blocks).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 06.04.2013, 17:39   #7
IgoreKMaN
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 88
По умолчанию

не совсем так... во всей программе русский язык работает, но при вызове функций sort() или arefm() имя или фамилию(в зависимости от того что задаем) не выводит, а выводит что то не понятное а затем выводит числа(как было задано)
IgoreKMaN вне форума Ответить с цитированием
Старый 06.04.2013, 17:54   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Еще есть ошибки в индексах, причем во многих местах:
Код:
for(i = 0; i < n; ++i) {
    cout<<stud[n].name<<"Средне арифметическое баллов по экзаменам  "<< z[i]<<"\n\n";
    cout<<"\n\n";
}
Не n, а i.
Точнее, не во многих, а в 2 циклах - считывания студентов и вывода среднего арифметического.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
каракули вместо русских букв tresh HTML и CSS 20 21.10.2014 19:17
Квадратики вместо букв в Edit1->Text calypso C++ Builder 1 22.03.2013 15:15
Не выводит символы MattShepard Общие вопросы C/C++ 2 12.01.2011 11:07
Вместо русских букв восточные иероглифы alexandros Microsoft Office Word 3 28.12.2010 15:22
Не выводит русских букв didzial Общие вопросы C/C++ 17 14.01.2010 12:04