- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
14030210038_程序设计基础实验报告-dxw
《程序设计基础课程设计》实验报告
班级:1403021
姓名:宋之鑫
学号:14030210038
所选题目:1_1 , 1_2 , 2_1 , 3_1 , 3_2 , 3_3 , 3_4 , 4-1 , 5_1 , 5_2
第1_1题
算法描述:首先定义两个二维字符数组,两个维数分别代表行数和文本中每行的字符的个数,用for循环和fgets函数把两个文本中的数据一行一行地复制到数组中,完毕后用for循环和strcmp函数比较两个数组中的不同的行,遇到不同行输出不同行,若没有不相等的行则输出:这两个文本文件相同!完毕
源程序:
no1_1.c
#includestdio.h
#includestring.h
#includestdlib.h
int main()
{
int i;
char a[6][80],b[6][80]; //用于存储文件中的字符串
FILE * fp1;
FILE * fp2;
if((fp1=fopen(1.txt,r))==NULL)//打开文件
{
printf(cant open file!\n);
exit(0);
}
if((fp2=fopen(2.txt,r))==NULL)///打开文件
{
printf(cant open file!\n);
exit(0);
}
for(i=0;i6;i++)//把文件中的数据录入到字符串数组中
{
fgets(b[i],81,fp2);
fgets(a[i],81,fp1);
}
for(i=0;i6;i++)
if(strcmp(a[i],b[i])!=0) break;//比较此行数据是否相同
if(i==6) printf(这两个文件相同!\n);
else
{
printf(不同行是第%d行\n1.txt的第%d行是%s\nb.txt的第%d行是%s\n,i+1,i+1,a[i],i+1,b[i]);
}
}
测试数据(输入、输出):两个不同的文本文件1.txt和2.txt
第1_2题
算法描述:
有三个文件,前两个里面有一串数字,把前面两个文件中的数字格式化输入到一个整型数组中,写一个冒泡排序函数把这个整型数组从大到小排序,最后平用fprint输入到第三个文件中,完毕
源程序:
no1_2.c
#includestdio.h
#includestdlib.h
#includestring.h
int paixu(int *arr, int jishu) //冒泡排序,把数组中的数组排序
{
int i=0,j=0,tmp;
for (i=0;ijishu;i++) //冒泡排序,从大到小
{
for(j=i+1; jjishu; j++)
{
if(arr[i]arr[j])
{
tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
}
}
return 0;
}
int main()
{
int a[300]={0}; //初始化
int jishu=0; //初始化
int i=0;
FILE *fp1=fopen(1.txt,r);
FILE *fp2=fopen(2.txt,r);
FILE *fp3=fopen(3.txt, w+);
if (fp1==NULL||fp2==NULL) //判断打开是否成功
{
printf(文件打开失败\n);
return 0;
}
while (!feof(fp1))
{
fscanf(fp1, %d, a[jishu++]);//把文件1中各数字输入到数组中
}
fclose(fp1);
while (!feof(fp2)) //把文件二中各数字输入到数组中
{
fscanf(fp2, %d, a[jishu++]);
}
fclose(fp2);
paixu(a, jishu);
for (i=0; ijishu; i++)
{
fprintf(f
文档评论(0)