西北农林科技大学c语言8答案,西北农林科技大学c语言上机实习8答案.doc

本文提供了两个C语言程序示例。第一个程序用于统计文本文件中的字符总数,通过输入文件名,程序读取文件并输出字符数量。第二个程序实现对文件中的整数数组进行排序,读取包含10个整数的二进制文件,进行升序排序后将结果写入新的二进制文件,并验证排序的正确性。
摘要由CSDN通过智能技术生成

西北农林科技大学c语言上机实习8答案

1. 文本文件中字符个数统计

#include

#include

int main(void)

{

char ch, filename[200];

int count = 0;

FILE *fp;

scanf("%s", filename);

if((fp = fopen(filename, "r")) == NULL)

{

printf("File open error!\n");

exit(1);

}

while((ch = fgetc(fp)) != EOF)

{

count++;

}

printf("%d\n",count);

if( fclose(fp))

{

printf("File close error!\n");

exit(1);

}

return 0;

}

2. 文件中数据的排序

#include

#include

int main(void)

{

int a[10], temp = 0, i = 0, j = 0, k = 0;

char filename1[80], filename2[80];

FILE *fp1,*fp2;

scanf("%s", filename1);

scanf("%s", filename2);

if((fp1 = fopen(filename1, "rb")) == NULL)

{

printf("Input file open error!\n");

exit(1);

}

if((fp2 = fopen(filename2,"wb")) == NULL)

{

printf("Output file create error!\n");

exit(1);

}

for(i = 0; i < 10; i++)

{

fread(&a[i], sizeof(int), 1, fp1); /* 读出数据 */

}

for(i = 0; i < 9; i++) /* 排序 */

{

k = i;

for(j = i + 1; j < 10; j++)

if(a[k] > a[j]) k = j;

if(k != i)

{

temp = a[k];

a[k] = a[i];

a[i] = temp;

}

}

for(i = 0; i < 10; i++) /* 写入数据 */

{

fwrite(&a[i], sizeof(int), 1, fp2);

}

if( fclose(fp1))

{

printf("Input file close error!\n");

exit(1);

}

if( fclose(fp2))

{

printf("Output file close error!\n");

exit(1);

}

/*验证结果的代码,请不要改动*/

if((fp1 = fopen(filename2, "rb")) == NULL)

{

printf("Result file open error!\n");

exit(1);

}

for(i = 0; i < 10; i++)

{

fread(&a[i], sizeof(int), 1, fp1); /* 读出数据 */

}

if( fclose(fp1))

{

printf("Result file close error!\n");

exit(1);

}

for(i = 0; i < 9; i++)

printf("%d ",

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值