永发信息网

用vc6运行这个程序时,为什么运行不了,大家看看有什么错误的地方啊,检查了很久就是不知道哪儿出问题了

答案:1  悬赏:0  手机版
解决时间 2021-01-26 14:05
  • 提问者网友:姑娘长的好罪过
  • 2021-01-26 06:39
用vc6运行这个程序时,为什么运行不了,大家看看有什么错误的地方啊,检查了很久就是不知道哪儿出问题了
最佳答案
  • 五星知识达人网友:一秋
  • 2021-01-26 07:47
#include
#include

#define swap(h, i) do { int tmp = list[h]; list[h] = list[i]; list[i] = tmp; \
} while (0)

typedef enum { FALSE = 0, TRUE }BOOL;

bool next_permutation(int list [], size_t size) {
size_t head_item;
size_t item;

// find the sub completed list
for (item = size - 1; item > 0; item--) {
if (list[item - 1] < list[item]) {
break;
}
}

if (item == 0) {
// finished
return false;
}
else {
head_item = item - 1;
}

// find the next item:
// The first great than head_item
for (item = size - 1; item > head_item; item--) {
if (list[head_item] < list[item]) {
break;
}
}
swap(head_item, item);

// reverse the sub list
for (item = head_item + 1; item < size; item++, size--) {
swap(item, size - 1);
}

return true;
}

int main()
{
char a[2][15], b[15];
int i = 0, j = 0, k = 0, val = 0, max = 0, flag = 0, count = 0, match = 0;
int Tdata[15] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };


Tdata[14] = Tdata[13] = 1;

FILE* fp = fopen("out.txt", "r");
if (fp == NULL)
{
printf("Wrong!");
return -1;
}
for (i = 0; i < 6435; i++)
{
long lOffset = 0; //用来记录a[0]读完后的位置
//取第i+1组数据
for (j = 0; j < 15; j++)
fscanf(fp, "%c", &a[0][j]);

fscanf(fp, "\n");


do
{
for (j = 0; j < 15; j++)
b[j] = a[0][j];
lOffset = ftell(fp); //记录下当前位置

for (j = 0; j < 15; j++)
{
if (Tdata[j] == 1)
{
b[j] = 6;
}
}
//取第i+2,i+3.....组数组
for (k = i + 1; k < 6435; k++)
{
for (j = 0; j < 15; j++)
{
fscanf(fp, "%c", &a[1][j]);
}
for (j = 0; j < 15; j++)
{
if (a[1][j] == b[j] || b[j] == 6)
match++;
}
if (match == 15)
{
flag = 1;
count++;
}
match = 0;
fscanf(fp, "\n");
}
count += flag;
flag = 0;

//回到原来的位置
fseek(fp, lOffset, SEEK_SET);

} while (next_permutation(Tdata, sizeof(Tdata) / sizeof(int) ));
}

printf("%d", count);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯