一.本周完成的作业:
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
1.实验代码
#include<bits/stdc++.h>
int main ()
{
FILE *fp;
int a[10];
int x = 0;
//打开文件
if((fp = fopen("C:\Users\JF\Desktop\2222\jiangfeng.txt","a+")) == NULL){
exit(0);
}
printf("请输入:");
for(int i=0; i<10; i++){ //写入文件
scanf("%d",&a[i]);
fprintf(fp,"%d,",a[i]);
}
for(int j=0; j<10; j++){
fscanf(fp,"%d",&a[j]); //提出文件
if(a[x]<a[j] ) { //< (>) 求最大(小值)及其最大(小)下标
x = j;
}
}
printf("%d %d",a[x],x); //打印最大值及其下标
fprintf(fp,"
%d %d",a[x],x); //将最大值及其下标写入文件
fclose(fp); //关闭文件
return 0;
}
2.设计思路
3.问题
(1)文件写入不成功
解决方法:发现与printf不同,fprintf需要加上指针变量。
(2)文件写入地址而不是值
当我输入上图所示的值后,写入文件时总是写入地址,而不是值。
结局方法:将输入的值空格输入。
4.运行结果
二.学习进度条
三.学习感悟
通过文件的学习发现指针确实是比较重要的一项,要努力学好指针。可以让自己的程序更加的简介快速高效。