#include <stdio.h>
//#include<math.h>
#include<string.h>
//#define MAX 0x3f3f3f3f
//void exchange(int e, int f);
//void exchange(int e,int f)
//{
// int a = 0, b = 0, c = 0, d = 0;
// a = f;
// b = e;
// printf("a=%d,b=%d",a,b);
//}
int main()
{
//设立必要变量
int a = 0, b = 0,x=0,count=0,i=0;
//定义数组以及初始化
int number[0x7777777];
int tiko[0x7777777];
memset(number, 0, sizeof(number));
memset(tiko, 0, sizeof(tiko));
//依次写入数组
printf("请输入");
scanf_s("%d", &x);
if (x != -1)
{
number[count] = x;
for (i = 0; i < 0x7777777; i++)
{
//计数
if (number[count] = i)
{
tiko[count]++;
}
}
count++;
scanf_s("%d", &x);
}
//输出数字以及个数
for (a = 0; a < count; a++)
{
if (tiko[a] != 0)
printf("%d %d次\n", number[a], tiko[a]);
}
//printf ("请输入你想交换的数字");
//scanf_s("%d %d", &a,&b);
// exchange(a,b);
return 0;
}
这个代码在 int main{ 处显示写入冲突,请问怎么解决?
报错是栈溢出了,不要定义用那么大的数组,数组改小,或者堆栈改大都行.相对来说数组改小容易些.
int number[0x7777777];int tiko[0x7777777]; 两个数组定义的太大了。
不知道你这个问题是否已经解决, 如果还没有解决的话: