| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1064 人关注过本帖
标题:[求助]数组+文件+指针的题
只看楼主 加入收藏
罗彬
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2006-4-24
结帖率:100%
收藏
 问题点数:0 回复次数:12 
[求助]数组+文件+指针的题

在D盘 test1中,存放10个整数,要求在insert中,能将给定的整数X插入到10个整数中规定的位置,在主调函数中输入待插入的数和位置,将插入后的结果重新写并输出到回到原来test1中
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "stdlib.h"
void insert(int *p,int i,int x)
{int a[11],j;
for(j=0;j<11;j++)
if(j==(i-1))
{{a[j]=x;
continue;}
a[j]=*(p++); }
p=a;}

main()
{FILE *fp;
int a[11],i,p,x;
if((fp=fopen("d:\\test1.txt","r+"))==NULL)
{printf("the file can't open");
exit(0);
}
for(i=0;i<11;i++)
a[i]=getw(fp);
scanf("%d,%d",&p,&x);
insert(a,p,x);
for(i=0;i<11;i++)
{putw(a[i],fp);
printf("%d",a[i]);}}



搜索更多相关主题的帖子: 指针 int 文件 整数 
2006-06-04 20:11
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

我要下了,没法帮你改了,
大致有以下两个问题:
1。函数有问题,这个帖子有,你可以看一下:
http://www.bc-cn.net/bbs/dispbbs.asp?boardID=5&ID=66821&page=1

2
。getw和putw这里用错,改成用用fscanf()和fprintf.


对不礼貌的女生收钱......
2006-06-04 20:54
罗彬
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2006-4-24
收藏
得分:0 

我就是搞不懂咱有错误,我想了好久哟


2006-06-04 22:26
罗彬
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2006-4-24
收藏
得分:0 
希望那个高手给我看一下哈,在这里谢谢了哟

2006-06-04 22:52
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
你不要回贴灌水了,先去玩会,一会我告诉你

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-06-04 22:54
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
直接插入好象不行吧,覆盖数据吧

把他都读出来,插入进去,再写入文件

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-06-04 22:55
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

文件中数据之间以一个空格隔开~先输入位置,再输入需要插入的数据
[CODE]
#include "stdio.h"
#include "stdlib.h"

void Insert(int *array,int subcript,int x) /*subcript插入的位置*/
{
int j;

for(j=9;j>subcript-2;j--)
array[j+1]=array[j];
array[subcript-1]=x;
}

int main()
{
FILE *fp;

int array[11],i,subcript,x;

if((fp=fopen("d:\\test1.txt","rt+"))==NULL)
{
printf("the file can't open\n");
exit(-1);
}
for(i=0;i<10;i++)
fscanf(fp,"%d ",&array[i]);
scanf("%d%d",&subcript,&x);
Insert(array,subcript,x);
rewind(fp);
for(i=0;i<11;i++)
fprintf(fp,"%d ",array[i]);

fclose(fp);
return 0;
}

[/CODE]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-06-04 23:29
罗彬
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2006-4-24
收藏
得分:0 
请问各位一下.if((fp=fopen("d:\\test1.txt","rt+"))==NULL)中的rt+中的t是什么意思??
还有为什么不能用putw各getw这两个专门读写一个整数年的函数,偏偏用fprintf 各fscanf这两个函数呢??他们两个之间有什么区别没????


2006-06-05 10:14
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

//遵照“最小改动原则”
//总算保住了getw()和putw()
//已经在Turbo C下调试通过
#include "stdio.h"
#include "stdlib.h"
int* insert(int *p,int i,int x)
{ static int a[11],j;
for(j=0;j<11;j++)
if(j==(i-1))
{ a[j]=x;
continue;
}
else
a[j]=*(p++);

return a;//原p=a是不可取的
}

main( )
{ FILE *fp;
int a[11],i,p,x,*b;
if((fp=fopen("d:\\test1.txt","r+"))==NULL)
{ printf("the file can't open\n");
exit(0);
}
for(i=0;i<11-1;i++)
a[i]=getw(fp);
rewind(fp);
scanf("%d,%d",&p,&x);
b=insert(a,p,x);
for(i=0;i<11;i++)
{ putw(b[i],fp);
printf("%d ",b[i]);
}
fclose(fp);
getch();
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-05 11:00
罗彬
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2006-4-24
收藏
得分:0 

我还是搞不懂rt+是什么意思,哪能位高手给我解释一下嘛


2006-06-05 12:01
快速回复:[求助]数组+文件+指针的题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026893 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved