C语言数组作业编程题答案
- 格式:docx
- 大小:14.55 KB
- 文档页数:5
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]); }