C语言作业题
发布网友
发布时间:2022-05-25 16:33
我来回答
共3个回答
热心网友
时间:2023-11-18 20:40
// Note:Your choice is C++ IDE
#include <conio.h>
#include<stdio.h>
int True(int i,int k,int a[])//判断数组中是否有跟k相同的数
{int j;
for(j=0;j<=i;j++)
{if(k==a[j])
{return 0;}}
return 1;
}
int Find(int number ,int ch[])
{int i=0;
while(number-ch[i])
{i++;}
return (i+1);
}
void main()
{FILE *pfile;
typedef struct Numb
{int number;
char a;
};
Numb number[100];//定义结构体1,用于接收文件的数值
typedef struct abc
{int number1;
char a;
int number2;
char b;
char c;
} ;
abc endok[100];//定义结构体2,用于输出标准化的文件内容
pfile=fopen("filein.txt","r") ;//打开文件
if(pfile==NULL)
{printf("File Not Created,press any key to exit");
getch();}//打开失败后输出提示,按任意键退出
else
{ int n=1,i=0,hold,k;
while(n!=EOF)
{n=fscanf(pfile,"%d%c",&number[i].number,&number[i].a);
i++;
}//格式化读入文件数据
hold=(i-2);
int ch[100],a[100];//排序前的准备工作
for(i=0;i<=hold;i++)
{ch[i]=number[i].number;
a[i]=0;
}
n=0;
int z,q;
for(k=0;k<=hold;k++)//开始排序(很关键)
{
z=k;
q=True(k,ch[k],a);
if(q)
{for(int j=k-1;j>=0;j--)
{
if(ch[k]>a[j])
{z=z-1;
a[j+1]=a[j];
}
}
a[z]=ch[k];}
}
for(i=0;i<=hold;i++)
{
endok[i].number1=number[i].number;
endok[i].a='(';
endok[i].b=')';
endok[i].c=',';
endok[i].number2=Find(endok[i].number1,&a[0]);
}
FILE *pfile2;
pfile2=fopen("fileout.txt","w");
fclose(pfile);
if(pfile==NULL)
{printf("File Not Created,press any key to exit");
getch();}
else
{ k=1;
i=0;
while(i!=hold)
{
k=fprintf(pfile2,"%d%c%d%c%c",endok[i].number1,endok[i].a,endok[i].number2,endok[i].b,endok[i].c);
i++;
}
n=hold+1;
i=0;
while(n--)
{
k=fscanf(pfile2,"%d%c%d%c%c",endok[i].number1,endok[i].a,endok[i].number2,endok[i].b,endok[i].c);
printf("%d",endok[i].number1);
printf("%c",endok[i].a);
printf("%d",endok[i].number2);
printf("%c",endok[i].b);
printf("%c",endok[i].c);
i++;
}
}
}
}
这个可以用了,楼主编译下试试
热心网友
时间:2023-11-18 20:41
尼玛,分太少
热心网友
时间:2023-11-18 20:41
百度全部