Для n = 2k (n четных) отобразите все круглые скобки, которые закрываются по-разному.name.exe прекратил работу с обратным отсчетом
in:4
out: (()),()()
Почему моя программа «exe перестала работать», когда я запускаю ее? Я сделал что-то неправильно с петлями или мой подход к этой проблеме не так?
#include<stdio.h>
int v[10],n;
void readfile()
{
FILE*fin;
fin=fopen("in.txt", "rt");
if(fin==NULL)
printf("Error");
else{
fscanf(fin, "%d", n);
}
fclose(fin);
}
void writefile()
{
int j;
FILE*fout;
fout=fopen("out.txt", "wt");
if(fout==NULL)
printf("Error");
else{
readfile();
for(j=1; j<=n; j++)
if(v[j]==1)
fprintf(fout, "%c", 41);
else
fprintf(fout, "%c", 40);
}
fclose(fout);
}
int condition(int k)
{
int close=0, open=0, i;
readfile();
for(i=1; i<=k; i++)
if(v[i]==0)
open++;
else
close++;
return open<=n/2 && close <= open;
}
void backtracking(int k)
{
int i;
readfile();
for(i=0; i<=1; i++)
{
v[k]=i;
if(condition(k))
if(k==n)
writefile();
else
backtracking(k+1);
}
}
void main()
{
backtracking(1);
}
Вы пытались использовать отладчик наподобие gdb? – Eregrith
'fscanf (fin,"% d ", n);' -> fscanf (fin, "% d", &n); – BLUEPIXY
Нет, но я не думаю, что проблема с отладчиком. – Crytek