求助!!c语言编程!急急急!大神帮帮忙!

2024-11-08 12:15:43
推荐回答(2个)
回答1:

以下代码是按“不知道文件中有多少个整数”的要求写的。

#include "stdio.h"

#include

int main(int argc,char *argv[]){

int n,*p;

int *myread(int *);

void sort(int *,int);

void mywrite(int *,int);

p=myread(&n);

sort(p,n);

mywrite(p,n);

free(p);//释放所申请的空间

return 0;

}

int *myread(int *n){

FILE *fp;

int t,*p;

if((fp=fopen("7-2.dat","r"))==NULL){

printf("Failed to open the file and exit...\n");

exit(0);

}

for(*n=0;fscanf(fp,"%d",&t)==1;(*n)++);//求文件有多少个整数

if((p=(int *)malloc(*n*sizeof(int)))==NULL){//动态申请内存

printf("Application memory failure...\n");

exit(0);

}

rewind(fp);//文件指针回到文件开头

for(t=0;fscanf(fp,"%d",p+t)==1;t++);//将文件数据读到动态数组p

fclose(fp);

return p;

}

void sort(int *p,int n){

int i,j,k;

for(i=0;i

for(k=i,j=k+1;j

if(p[k]>p[j])

k=j;

if(k!=i)

j=p[i],p[i]=p[k],p[k]=j;

printf("%d ",p[i]);//排序后的数据显示到屏幕,调试完毕删除此行

}

}

void mywrite(int *p,int n){

FILE *fp;

int m;

if((fp=fopen("7-2.out","w"))==NULL){

printf("Failed to create the file and exit...\n");

exit(0);

}

for(m=0;m

fclose(fp);

}

代码格式和运行结果图片:

回答2:

C是编程语言里比较难学的一门,如果有心从事编程方向的工作,最好到专业机构多实践,更贴近市场,这样更有利于将来的发展。