用c语言或汇编语言编写一个:将数组按由小到大的顺序排列的程序。要求1:数组元素的个数由键盘输入。
范围5-10个。2:数组元素由键盘输入。3:显示排序后的数组。4:附加(将排序后的数组存到文本文件中,格式自定)。很急!!!!!...
范围5-10个。2:数组元素由键盘输入。3:显示排序后的数组。4:附加(将排序后的数组存到文本文件中,格式自定)。很急!!!!!
展开
3个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
void Order(int *num,int n) //bubble sort
{
int s=0;
int tag = false ; // 设置是否需要继续冒泡的标志位
for ( int i = 0 ; i < n ; i++)
{
for ( int j = 0 ; j < n - i - 1 ; j++)
{
if ( num[j] > num[j+1])
{
tag = true ;
int temp = num[j] ;
num[j] = num[j+1] ;
num[j+1] = temp ;
}
}
if ( !tag )
break ;
}
}
int main()
{
printf("输入数据:");
int a[10];
for (int i =0;i<10;i++)
{
scanf("%d",&a[i]);
}
Order(a,10);
printf("\n");
FILE *fp;
if((fp=fopen("d:\\test.txt","w"))==NULL) /*以只写方式打开文件*/
{
printf("cannot open file!\n");
exit(0);
}
for (int j = 0;j<10;j++)
{
fprintf(fp,"%d ",a[j]);
printf("%d",a[j]);
printf(" ");
}
printf("\n");
fclose(fp);
return 0;
}
#include <stdlib.h>
void Order(int *num,int n) //bubble sort
{
int s=0;
int tag = false ; // 设置是否需要继续冒泡的标志位
for ( int i = 0 ; i < n ; i++)
{
for ( int j = 0 ; j < n - i - 1 ; j++)
{
if ( num[j] > num[j+1])
{
tag = true ;
int temp = num[j] ;
num[j] = num[j+1] ;
num[j+1] = temp ;
}
}
if ( !tag )
break ;
}
}
int main()
{
printf("输入数据:");
int a[10];
for (int i =0;i<10;i++)
{
scanf("%d",&a[i]);
}
Order(a,10);
printf("\n");
FILE *fp;
if((fp=fopen("d:\\test.txt","w"))==NULL) /*以只写方式打开文件*/
{
printf("cannot open file!\n");
exit(0);
}
for (int j = 0;j<10;j++)
{
fprintf(fp,"%d ",a[j]);
printf("%d",a[j]);
printf(" ");
}
printf("\n");
fclose(fp);
return 0;
}
追问
谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
忘了有什么文件函数,搞得晚了。。。。
#include<stdio.h>
int main(void)
{
int iNum, i, j, iArray[10], iTemp;
FILE *fp;
printf("输入数组个数:");
scanf("%d", &iNum);
for(i = 0; i < iNum; ++i)
{
scanf("%d", (iArray + i));
}
//排序
for(i = 1; i < iNum; ++i)
{
for(j = 0; j < i - j; ++j)
{
if(iArray[j] > iArray[j + 1])
{
iTemp = iArray[j];
iArray[j] = iArray[j + 1];
iArray[j + 1] = iTemp;
}
}
}
fp = fopen("C:\\1.txt", "wb+");
for(i = 0; i < iNum; ++i)
{//写入文件,有个可以一次写入的函数,但我忘了
fprintf(fp, "%d ", iArray[i]);
}
fclose(fp);
return 0;
}
#include<stdio.h>
int main(void)
{
int iNum, i, j, iArray[10], iTemp;
FILE *fp;
printf("输入数组个数:");
scanf("%d", &iNum);
for(i = 0; i < iNum; ++i)
{
scanf("%d", (iArray + i));
}
//排序
for(i = 1; i < iNum; ++i)
{
for(j = 0; j < i - j; ++j)
{
if(iArray[j] > iArray[j + 1])
{
iTemp = iArray[j];
iArray[j] = iArray[j + 1];
iArray[j + 1] = iTemp;
}
}
}
fp = fopen("C:\\1.txt", "wb+");
for(i = 0; i < iNum; ++i)
{//写入文件,有个可以一次写入的函数,但我忘了
fprintf(fp, "%d ", iArray[i]);
}
fclose(fp);
return 0;
}
追问
太感谢拉
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
元素个数键盘输入么?还是每个元素键盘输入,如果是个数那就要动态的了,而且你的第四个条件,视乎文件存的没格式的
追问
老师出的原题,我也不清楚。第四个选作。每个元素输入。
追答
#include
#include
void main()
{
int *shu,n,i,j,temp;
FILE *fp;
printf("how many numbers you want to input?\n");
scanf("%d",&n);
shu=(int *)malloc(n*sizeof(int));
printf("input %d numbers!\n",n);
for(i=0;ishu[j+1])
{
temp=shu[j];
shu[j]=shu[j+1];
shu[j+1]=temp;
}
}
for(i=0;i<n;i++)
printf("%d\n",shu[i]);
if((fp=fopen("rankshu.txt","wt"))==0)
{
printf("can't open this file!\n");
exit(1);
}
fwrite(shu,sizeof(int),n,fp);
fclose(fp);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询