文件data.txt中有一个已排好序的整数序列,main 函数中定义1个有8个元素的一维整型数组a,从data.txt文件中读入数据赋给数组a,然后从键盘输入一个整数,要按原来排序的规律将它插入数组a中,再将插入后数组a中的值写到文件data.txt中。 例如:原来文件中的整数依次为4 6 8 41 56 77 102。若将42插入数组中,则插入后文件中的整数序列为4 6 8 41 42 56 77 102。
/* Note:Your choice is C IDE */
#include "stdio.h"
#include <stdlib.h>
void main()
{
FILE *fp;
char c;
char str[100]={'\0'};
char num[5]={'\0'};
int i=0;
int j=0;
int k=0;
int s=0;
int a[10]={0};
int b;
fp = fopen("d:\\test.txt","r");
c=fgetc(fp);
str[i++]=c;
while(c !=EOF){
c=fgetc(fp);
str[i++]=c;
}
//关闭
fclose(fp);
for(j=0;j<i;j++){
if(str[j]>='0' && str[j]<='9'){
num[k++] = str[j];
}else {
k=0;
a[s++]= atoi(num);
}
}
printf("请输入一个数:");
scanf("%d",&b);
for(i=0;i<s;i++){
if(a[i]<b){
continue;
}else{
j=i;
break;
}
}
for(i=s;i>=j;i--){
a[i]=a[i-1];
}
a[j]=b;
for(i=0;i<=s;i++)
printf("%d\t",a[i]);
}
文本文件在D盘根目录下面
不知道你从哪儿搞到的这个题,这个描述的好有问题,data.txt 中排序好的整数序列,是用什么分隔的?序列的数量是否有要求?已排好序,是确定升序还是降序?为啥固定是长度为 8 的数组?下面这种情况,你期望得到怎样的结果: 原序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 插入数字为 20。你是期望用 20 替换掉 8 这个数字还是期望把 20 放在 11 后面
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632