gpt4 book ai didi

c - 小数据完美,大数据错误: A strange bubble sort question

转载 作者:行者123 更新时间:2023-11-30 16:01:23 25 4
gpt4 key购买 nike

Possible Duplicate:
Small data perfect, Large data wrong: A strange bubble sort question.

我的代码和输入数据文件在这里:
https://skydrive.live.com/?cid=bfe8af46e42e3ecf&sc=documents&id=BFE8AF46E42E3ECF!440#cid=BFE8AF46E42E3ECF&id=BFE8AF46E42E3ECF!935&sc=documents

我正在编写一个冒泡排序程序。我用TCC( http://bellard.org/tcc/ )。我在程序中使用了 long long 变量,因为输入数据非常大。我的问题是:当输入数据数量很少(例如 10)时,我的程序运行良好。但是当输入数据数量很大(例如 5814)时,我的程序就会出错。

这是我的程序和测试数据:

/*bubble.c*/
#include <stdio.h>

int main()
{
int n,i,j;
long long t,
a[6001]; /*Change this to a[10000], then it works perfectly*/

freopen("data.in.txt","r",stdin);
freopen("date.out.txt","w",stdout);
scanf("%d",&n);

/*Read input data from "data.in.txt"*/
for (i=1;i<=n;i++) {
scanf("%lld",&a[i]);
/*printf("i=%d\ta[i]=%lld\n",i,a[i]);*/
}

/*Bubble Sort*/
for (i=1;i<=n-1;i=i+1) {
for (j=n;j>=i+1;j=j-1) {
if (a[j]<a[j-1]) {
t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
}
}

/*Output data to "data.out.txt"*/
for (i=1;i<=n;i++) {
printf("i=%d\ta[i]=%lld\n",i,a[i]);
}


/*printf("Time used =%lf\n",(double)clock() / CLOCKS_PER_SEC);*/
/*system("pause");*/
return 0;
}

====================================

我的输入数据:非常大的数字。

5814

2094424271519418927 828028199 47874386 1918308053 665370647 355436872 122922452 1361311685 1711685536 1850886562 752723777 5670583 21 1879534287 579940183 1802179021 2004892116 1219034394 269237342 410745567 849113437 ……

最佳答案

你为什么使用

scanf("%lld",&n);

n被声明为int时?这可能会覆盖内存。

关于c - 小数据完美,大数据错误: A strange bubble sort question,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6706500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com