C语言数组编程题?

请先用记事本创建文件original.txt,往其中写入一组已排好序的整型数,今输入一个整数,要求按原来排序的规律将它插入数中,仍写入文件。例如:原来整数依次为4、6、8... 请先用记事本创建文件original.txt,往其中写入一组已排好序的整型数,今输入一个整数,要求按原来排序的规律将它插入数中,仍写入文件。例如:原来整数依次为4、6、8、41、56、77、102(数据间的分隔符为空格)。若将42插入数中,则插入后整数依次为4、6、8、41、42、56、77、102。 展开
 我来答
z5850929
2020-04-06 · 超过24用户采纳过TA的回答
知道答主
回答量:124
采纳率:80%
帮助的人:30.2万
展开全部

度娘打格式太麻烦了,参考图片格式吧。

#define _CRT_SECURE_NO_DEPRECATE

#include<stdio.h>

#include<iostream>

using namespace std;


int main() {

FILE *fp;

fp = fopen("C:\\Users\\93482\\Desktop\\original.txt", "r+");

if (fp == NULL) {

printf("File open error");

return 0;

}

int a[100];

int k = 0;

while (!feof(fp)) {

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

if (feof(fp))break;

}

printf("Plese input the number you want to insert:");

int x;

scanf("%d", &x);

for (int i = 0; i < k; i++) {

if (a[i] > x) {

for (int j = k; j >= i; j--) {

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

}

a[i] = x;

k++;

break;

}

}

fclose(fp);

fp = fopen("C:\\Users\\93482\\Desktop\\original.txt", "w");

for (int i = 0; i < k; i++) {

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

}

fclose(fp);

}

追问
你确定这个对?
追答
你上编译器跑一下就知道了啊,吧那个路径改一下就行,我这测试没问题
金色潜鸟
2020-04-07 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5479万
展开全部
完整程序如下:
#include<stdio.h>
int main()
{
FILE *fin;
int x;
int *a,N,i;
static int t; //用 static , 可适用于大的文件反复地读
fin=fopen("original.txt","r");
if (!fin){
printf("file open err, exit!\n");return 1;
};
N=0;
while(1){
if (fscanf(fin,"%d",&t)==1) N++;
if (feof(fin)) break;
}
// printf("N=%d\n",N);
rewind(fin);
a = (int *) malloc(sizeof(int)*N);
for (i=0;i<N;i++) fscanf(fin,"%d",&a[i]);
fclose(fin);
fin=fopen("original.txt","w");
printf("input x: ");
scanf("%d",&x);
if (x<=a[0]){
fprintf(fin,"%d ",x);
for (i=0;i<N;i++) fprintf(fin,"%d ",a[i]);
}else if (x>=a[N-1]){
for (i=0;i<N;i++) fprintf(fin,"%d ",a[i]);
fprintf(fin,"%d ",x);
} else {
fprintf(fin,"%d ",a[0]);
for (i=1;i<N;i++){
if (x>a[i-1] && x<=a[i]) fprintf(fin,"%d ",x);
fprintf(fin,"%d ",a[i]);
}
};
fclose(fin);
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式