Форум программистов, компьютерный форум CyberForum.ru

Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined - C++

Восстановить пароль Регистрация
 
systemofadown
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 16
05.05.2011, 15:39     Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined #1
Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined.
Вот программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <iomanip>
#include <math.h>
using std::cout;
using std::cin;//5
using std::endl;
template <class T>T MIN(T *v,int n);
template <class T>T SUM(T *v,int n);
template <class T>T PREOB(T *v,int n);
int main()//10
{   int n;
    cout << "vvedite kol-vo elementov massiva" << endl;
    cin>>n;
    float *y=new float[n];
    float *v=new float[n];//15
    int i,k;
    cout<<"vvedite elementy massiva"<<endl;
    for (i=0; i<n;i++)
        cin>>v[i];
    MIN(v,n);//20
    cout <<"min element pod nomerom "<<(k+1)<<endl;
    cout<<"summa ravna= "<<SUM(v,n)<<endl;
    PREOB(v,n);
cout<<"massiv posle preobrazovaniya";
for(i=0;i<n;i++)//25
cout<<v[i]<<' ';
    return 0;
}
template <class T>T MIN(T *v,int n){
    float min;//30
    min=v[0];
    int k=0;
    for (int i=1; i<n;i++)
    if (v[i]<min)
    {min=v[i];k=i;};//35
    return 0;
    }
template <class T>T SUM(T *v,int n){
        float sum,ot1,ot2;int i;
        sum=0;//40
    for(i=0;i<n;i++)
    if (v[i]<0)
    {ot1=i ; break;}
    for (i=ot1+1;i<n;i++)
        if(v[i]<0)//45
        {ot2=i;
         break;}
    for (i=ot1+1; i<ot2;i++)
        sum=sum+v[i];
    return 0;//50
    }
template <class T>T PREOB(T *v,int n){
            int j,i;
    for (i=0, j=0; i<n; ++i)
  if (abs(v[i])<=1)//55
    {
      if (i!=j)
        {
          v[j]+=v[i];
          v[i]=v[j]-v[i];//60
          v[j]-=v[i];
        } 
      j+=1;
    } 
  return 0;}//65
Скажу "Большое спасибо" великому уму, который поможет исправить ошибку.
упс в названии темы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
05.05.2011, 15:45     Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <iomanip>
#include <math.h>
using std::cout;
using std::cin;//5
using std::endl;
template <class T>T MIN(T *v,int n);
template <class T>T SUM(T *v,int n);
template <class T>T PREOB(T *v,int n);
int main()//10
{   int n;
        cout << "vvedite kol-vo elementov massiva" << endl;
        cin>>n;
        float *y=new float[n];
        float *v=new float[n];//15
        int i;
        cout<<"vvedite elementy massiva"<<endl;
        for (i=0; i<n;i++)
                cin>>v[i];
 
        cout <<"min element pod nomerom "<<MIN(v,n)<<endl;
        cout<<"summa ravna= "<<SUM(v,n)<<endl;
    PREOB(v,n);
cout<<"massiv posle preobrazovaniya";
for(i=0;i<n;i++)//25
cout<<v[i]<<' ';
        return 0;
}
template <class T>T MIN(T *v,int n){
        float min;//30
        min=v[0];
        int k=0;
        for (int i=1; i<n;i++)
        if (v[i]<min)
        {min=v[i]; k=i;}//35
        return k;
        }
template <class T>T SUM(T *v,int n){
                float sum,ot1,ot2;int i;
                sum=0;//40
        for(i=0;i<n;i++)
        if (v[i]<0)
        {ot1=i ; break;}
        for (i=ot1+1;i<n;i++)
                if(v[i]<0)//45
                {ot2=i;
             break;}
        for (i=ot1+1; i<ot2;i++)
                sum=sum+v[i];
        return 0;//50
        }
template <class T>T PREOB(T *v,int n){
                        int j,i;
        for (i=0, j=0; i<n; ++i)
  if (abs(v[i])<=1)//55
    {
      if (i!=j)
        {
          v[j]+=v[i];
          v[i]=v[j]-v[i];//60
          v[j]-=v[i];
        }
      j+=1;
    }
  return 0;}//65
Код у вас оформлен не очень, мягко говоря, но это так, на будущее)
systemofadown
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 16
05.05.2011, 15:55  [ТС]     Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined #3
Спасибо, знаю. Ничего не поделать, цель лабораторной научиться пользоваться шаблонами функций, отсюда и такой некрасивый код.
Спасибо за помощь.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
05.05.2011, 15:56     Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined #4
Да тут не в шаблонах дело)
systemofadown
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 16
05.05.2011, 15:58  [ТС]     Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined #5
Поясните тогда в чем, чтобы впредь у меня лучше выходило.Ну если, конечно, есть время и желание
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
05.05.2011, 16:08     Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined #6
Я поправил main и первую функцию, остальные уже не стал.
Смысл таков:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <iomanip>
#include <cmath>
 
/*using std::cout;
using std::cin;//5
using std::endl;*/ // это на ваш взгляд, но я предпочитаю так не писать.
 
template <class T> T MIN(T *MAS, int n);
template <class T> T SUM(T *MAS, int n);
template <class T> T PREOB(T *MAS, int n);
 
int main()
{   
    int n;
    std::cout << "razmer: ";
    cin>>n;
    
    float *MAS = new float[n];
    std::cout << "vvedite elementy massiva: " << std::endl;
    for (int i = 0; i < n; i++)
        std::cin >> MAS[i];
 
    std::cout << "min element pod nomerom " << MIN(MAS, n) << std::endl;
    std::cout << "summa ravna = " << SUM(MAS, n) << endl;
    
    PREOB(MAS, n);
    cout << "massiv posle preobrazovaniya - ";
    for (int i = 0; i < n; i++)
        std::cout << MAS[i] << ' ';
    std::cout << std::endl;
        
    return 0;
}
 
template <class T> T MIN(T *MAS, int n)
{ 
    float min = MAS[0];
    int index = 0;
        
    for (int i = 1; i < n; i++)
        if (MAS[i] < min) {
            min = MAS[i];
            index = i;
        }
        
    return index;
}
Ну и плюс весь текст, который я вывожу в консоль, я пишу на английском, но сейчас это не принципиально.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2011, 16:23     Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined
Еще ссылки по теме:

C++ Ошибка Run-Time Check Failure #3 - The variable 'chcount' is being used without being initialized.
C++ Ошибка Run-Time Check Failure #2 - Stack around the variable 'B' was corrupted
C++ Ошибка: Run-Time Check Failure #3 - The variable 'i' is being used without being initialized

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
systemofadown
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 16
05.05.2011, 16:23  [ТС]     Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined #7
окей,учту
спасибо
Yandex
Объявления
05.05.2011, 16:23     Ошибка: Run-time Check Failure #3-The variable 'k' is being used without being defined
Ответ Создать тему
Опции темы

Текущее время: 05:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru