实验代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE*fp;
char a[20];
int n, i;
int max=0;
if((fp=fopen("E:\huanglexing\huanglexing.txt,"r+"))=NULL)
{printf("File open error! ");
exit (0);
}
for(i=0;i<6;i++)
{
fscanf(fp,“%d”,&a[i]);
}
for(i=0;i<6;i++){
if(a[i]>a[max]) {
max=i;
}
}
printf(“%d %d”,a[max],max);
fprintf(fp,“ %d %d”,a[max],max);
if(fclse (fp)){
printf ("can not close the file! ");
exit (0);
}
return 0;
}
设计思路1.定义输入变量n,i,
2.用for循环语句找到最大值
3.如果最大值为0,此时其下标为0;在用新输入的数与原来假设的数作比较,留下最大的数,其下标为其所在的位置减一
4.输出最大的数及其下标
5.结束流程
流程图
本题遇到的困难及解决办法
问题:
1:在dev-c++中老是编译错误,不知道怎么老是运行不了。
2.找不到题目的关键,摸索了很久才知道要做到求最大值及其下标,但又不知道如何用代码打出来,流程图作了很久,其中对于一个题目如何用流程图表示不太了解。
3.for循环语句使用中出现混乱,自己头都大了,不知所云。
解决办法:1.利用其余时间跟同学讨论,询问他们的解题思路,找出自己的问题所在
2.对着书写代码时,发现对于数组知识并未很熟悉,在dev-c++中发现for循环中变量的失误,从而将题目解决问题。
运行结果截图
评价
1).心得:计算机中任何一个符号都要熟练的掌握,在定义变量时需要仔细定义;循环语句的运用必须要灵活且熟练。
2).完成作业的时间消耗:写代码的时候用了很久,因为老是编译错误。总结用了两个多小时。