C语言数组作业编程题答案

  • 格式:docx
  • 大小:14.55 KB
  • 文档页数:5

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、请先用记事本创建文件original.txt,往其中写入一组已排好序的整型数,今输入一个整数,要求按原来排序的规律将它插入数中,仍写入文件。例如:原来整数依次为4、6、8、41、56、77、102(数据间的分隔符为空格)。若将42插入数中,则插入后整数依次为4、6、8、41、4

2、56、77、102。

答案:

#include

#include

void main()

{

int a[100];

int ijnumber;

int n;

FILE *fp;

fp=fopen("e:\\C语言\\original.txt""r");

if(fp==NULL)

{

printf("open error");

exit(0);

}

i=0;

while(!feof(fp))

{

fscanf(fp"%d"&a[i++]);

fgetc(fp);

}

number=i-1; //number中存最后一个数据的下标

fclose(fp);

scanf("%d"&n);

//以下的while循环用来找n要放的位置循环结束时正好是a[i]的位置i=0;

while(n>a[i])

{

i++;

}

//for循环的功能是将a[i]到最后一个元素全后移一个位置

for(j=number;j>=i;j--)

a[j+1]=a[j];

//将n放入找到的位置

a[i]=n;

number=number+1; //加入n后,元素个数增1,用来控制向文件中的写入次数

fp=fopen("e:\\C语言\\original.txt""w");

if(fp==NULL)

{

printf("open error");

exit(0);

}

//写入数据

for(i=0;i<=number-1;i++)

fprintf(fp"%d "a[i]);

fprintf(fp"%d"a[i]); //最后一个数据后没有空格

fclose(fp);

}

2、假定整型数组中的元素值不重复。今输入一个整数,先查找,如数组中存在此元素,则删除,否则不做操作。例如:原来数组的元素依次为14、6、28、41、96、77、89、102。若将96删除,则删除后数组元素依次为14、6、28、41、77、89、102。

答案:

#include

#include

#define N 8

void main()

{

int a[N]={1462841967789102};

int ij;

int nnumber;//number中存在数组中最后一个元素下标,删除一个元素后会减1

number=N;

scanf("%d"&n);

for(i=0;i

if(n==a[i])

{

printf("找到了,即将删除\n");

number=N-1;

for(j=i;j<=N-1;j++)

a[j]=a[j+1];

break; //因为各元素互不相同,所以删除后不用再查找,直接退出循环

}

for(i=0;i

printf("%d "a[i]); }