Я использую Visual Studio 2010. while продолжает повторяться, и я получаю сообщение об ошибке, когда программа останавливается.В то время как циклы повторяются, ошибка отладки при остановке программы
Это просто увеличивая значение массива в 700 раз больше, чем это необходимо, и «линия» показывает, что это просто повторяет цикл пока больше, чем он должен (~ 700 раз)
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
int main(){
int loop,loop2,loop3,usergirdi,random,linecounter,s,b,x;
int a[17];
printf("baslayarak \n");
scanf("%d",&usergirdi);
for (loop=1;loop<=16;loop++){
a[loop]=0; }
for (loop2=1;loop2<=15;loop2++){
if(loop2==usergirdi){
usergirdi=usergirdi;
a[usergirdi]+=1;
printf("%d ",a[usergirdi]); }
else
printf("%d ",a[loop2]);}
linecounter=0;
printf("\n");
while (a[1]<1||a[15]<1||a[2]<1||a[3]<1||a[4]<1||a[5]<1||a[6]<1||a[7]<1||a[8]<1||a[9]<1||a[10]<1||a[11]<1||a[12]<1||a[13]<1||a[14]<1){
linecounter++;
srand (time(NULL));
random=(rand()%15+1);
if (a[random-1]==0 && a[random+1]==0 && a[random]==0){}
else if (a[random-1]!=0 || a[random+1]!=0)
{
a[random]+=1;
}
for (b=0;b<=14;b++){
printf("%d ",a[b]); }
printf("[line %d]\n",linecounter);
}}
ошибка отладки:
Пожалуйста, уменьшите код до ** минимального ** компилируемого кода, необходимого для воспроизведения этой ошибки. Вероятно, вы также обнаружите, что решили свою проблему. –
Не звонили ли тревожные звонки с этим отвратительным условием 'while'? – Bathsheba
Тревожные колокола: 'a [-1] = 0;'. Сообщение об ошибке даже сообщает об этом. – usr2564301