题目:14周-1
7-4
1.实验代码
#include<stdio.h>
int main(){
int m,a[12]={1,1};
for(m=2;m<=11;m++)
a[m]=a[m-1]+a[m-2];
for(m=0;m<=11;m++){
printf("%6d",a[m]);
if((m+1)%3==0)
printf("\n");}
return 0;
}
2.设计思路
(1)主要题目算法
第一步:先定义一个数组,给出前两个数的数值。
第二步:计算出后面的数值。
第三步:在for循环里,m应从2开始循环。
第四步:输出最后一个数字后,换行,m+1等于数组的个数,进行除3取余。
(2)流程图
3.本题调试过程中遇到的问题及解决方法。
错误截图
遇到的问题及解决办法:
题目要求三组数一行,我再用if循环if((m+1)%3==0来实现三组一换行。
题目 14周2
7-1
1、实验代码
#include <stdio.h>
int main(void)
{
int i,index,n;
printf("Enter n:");
scanf("%d",&n);
int a[n];
printf("Enter %d integers:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
index=0;
for(i=0;i<n;i++)
if(a[i]>a[index])
index=i;
printf("max is %d\n index is %d\n",a[index],index);
return 0;
}
2、设计思路
(1)主要描述
第一步:审题,带着题干给的输入输出格式去思考,打出大体框架。
第二步:定义变量i,index(下标标示),max(最大值),定义数组a[n]。
第三步:使用for循环输入数据,让index=0相当于保证输入的数从第一个开始。
第四步:再次使用for循环,用if语句判断出符合要求的数组中的数据,如果a[i]>a[index],那么就进行交换,保证max一直最大。
第五步:最后输出最大值及其下标。
(2)流程图
3、本题调试过程碰到的问题及解决办法
错误提示截图:
解决:那个max没有给出定义,还有没有初始输入,要先输入数据的,经过问同学解决的。