Когда я предоставляю ввод для std::cin >> diff;
, он принимает входное значение, а в момент ввода значения массива значение переменных переменных изменяется и устанавливает значение 4th element
массива. Пожалуйста, помогите мне, где это происходит. Я пробовал с fflush(std)
. Но это мне не помогло.Как автоматически присваивается присвоенное значение переменной?
Я пользуюсь Visual Studio 2010 Ultimate edition
.
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int i, num;//[]={0};
int diff = 0;
int numset[] = {0};
int temp, cnt;
cnt = num = i = 0;
std::cout << "Enter your number and difference : ";
//fflush(stdin);
std::cin >> num ;
std::cin >> diff;
cout << "Enter array Elements : \n";
for(i = 0; i < num; i++)
{
cin >> numset[i];
//fflush(stdin);
}
for(i = 0; i < num; i++)
{
for(int j = i; j < num; j++)
{
if(i == j)
{
temp = numset[j];
}
else
{
if((diff == (numset[j] - temp)) || (((-1)*diff) == (numset[j] - temp)))
{
cnt++;
}
}
}
}
cout << cnt << endl;
system("pause");
return 0;
}
@JoachimPileborg: выброс ошибки как, размер массива должен быть больше, чем '0' –
' fflush (stdin) 'is UB. – chris