Runtime Error:[ERROR] A Not allowed system call

来源:互联网 发布:哪个软件有鱼眼效果 编辑:程序博客网 时间:2024/05/01 21:01

写OJ用CB用惯了,突然用VS写最后不会有按任意键退出。所以加了一句System("pause");

交到GCC上就报这个错

// AAA.cpp : 定义控制台应用程序的入口点。
//


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>


#define ERROR 0
#define OK 1
#define FALSE 0
#define TRUE 1
#define LISTSIZE 100
#define LISTINCREMENT 50
typedef int status;


typedef struct
{
int* elem;
int count;
int size;
}sqlist;


status Initlist(sqlist &l)
{
l.count = 0;
l.size = LISTSIZE;
l.elem = (int*)malloc(LISTSIZE * sizeof(int));
if (!l.elem)
return ERROR;
return OK;
}
status Deletelist(sqlist &l)
{
memset(&l, 0, sizeof(l));
return OK;
}
status Insertlist(sqlist &l, int n, int x)
{
if (n > l.size)return ERROR;
if (l.count == l.size)
{
l.elem = (int*)realloc(l.elem,( l.size + LISTINCREMENT)*sizeof(int));
l.size += LISTINCREMENT;
}

if (!l.elem)return ERROR;
if (n <= l.count)
{
for (int i = n; i<l.count; i++)
l.elem[n + 1] = l.elem[n];


l.elem[n] = x;
}
else
l.elem[n] = x;
l.count++;
return OK;
}
status List_intersection(sqlist l1, sqlist l2, sqlist &l3)
{
int flag = 0;
for (int i = 0, j = 0;;)
{
if (i == l1.count || j == l2.count)
break;
if (l1.elem[i]>l2.elem[j])
j++;
else if (l1.elem[i]<l2.elem[j])
i++;
else if (l1.elem[i] == l2.elem[j])
{
if (flag == 0)
{
printf("%d", l1.elem[i]);
flag++;
}
else
printf(" %d", l1.elem[i]);
Insertlist(l3, l3.count, l1.elem[i]);
//l3.count++;
i++;
j++;
}


}
return OK;
}


status List_union(sqlist l1, sqlist l2)
{
int flag = 0,flag1=0,k=l1.count+l2.count,i=0,j=0;
for (;;)
{


if (l1.elem[i]>l2.elem[j])
{
if (flag == 0)
{
printf("%d", l2.elem[j]);
flag++;
}
else
printf(" %d", l2.elem[j]);
if (j != l2.count )
j++;
}
else if (l1.elem[i]<l2.elem[j])
{
if (flag == 0)
{
printf("%d",l1.elem[i]);
flag++;
}
else
printf(" %d", l1.elem[i]);
if (i != l1.count )
i++;
}
else if (l1.elem[i] == l2.elem[j])
{
k--;
if (flag == 0)
{
printf("%d", l1.elem[i]);
flag++;
}
else
printf(" %d", l1.elem[i]);
if (i != l1.count )
i++;
if (j != l2.count )
j++;
}
k--;
if (i == l1.count || j == l2.count )
break;
}
if (k > 0)
{
if (j==l2.count)
for (; k > 0; k--)
   printf(" %d", l1.elem[i++]);
else if (i==l1.count)
printf(" %d", l2.elem[j++]);
}
return OK;
}
status List_difference(sqlist l1, sqlist l3)
{
int flag = 0;
for (int i = 0, j = 0;;)
{
if (l1.elem[i] == l3.elem[j])
{
i++;
if (j != l3.count - 1)
j++;
}
else if (l1.elem[i]>l3.elem[j])
{
if (flag == 0)
{
printf("%d", l1.elem[i]);
flag++;
}
else
printf(" %d", l1.elem[i]);
//Insertlist(l5, l5.count, l1.elem[i]);
if (j != l3.count - 1)
j++;
i++;
}
else if (l1.elem[i]<l3.elem[j])
{
if (flag == 0)
{
printf("%d", l1.elem[i]);
flag++;
}
else
printf(" %d", l1.elem[i]);
//Insertlist(l5, l5.count, l1.elem[i]);
i++;
}
if (i == l1.count)
break;


}
return OK;
}
void List_show(sqlist l)
{
for (int i = 0; i<l.count; i++)
{
if (i == 0)
printf("%d", l.elem[i]);
else
printf(" %d", l.elem[i]);
}


}
int main()
{
int i, j, m, n, temp;
sqlist l1, l2, l3;
scanf("%d", &m);
for (i = 1; i <= m; i++)
{


Initlist(l1);
Initlist(l2);
Initlist(l3);
scanf("%d", &n);
for (j = 0; j<n; j++)
{
scanf("%d", &temp);
Insertlist(l1, j, temp);
}
scanf("%d", &n);
for (j = 0; j<n; j++)
{
scanf("%d", &temp);
Insertlist(l2, j, temp);
}
printf("Case #%d:\n", i);
List_intersection(l1, l2, l3);
//List_show(l3);
printf("\n");
List_union(l1, l2);
//List_show(l4);
printf("\n");
List_difference(l1, l3);
//List_show(l5);
printf("\n");
List_difference(l2, l3);
// printf("\n");
//List_show(l5);
// Deletelist(l1);
//Deletelist(l2);
//Deletelist(l3);
}
//Deletelist(l1);
//Deletelist(l2);
//Deletelist(l3);
system("pause");
return 0;


}

0 0
原创粉丝点击