7-2 求最大值及其下标
1.题目
提交结果
2.设计思路
定义变量,输入数组,给max maxlab定义初始值
循环比较前后数值,最后输出
3.流程图
代码如下
#include<stdio.h> int main(){ int a[100],i,n,max,maxlab,lab=0; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } max=a[lab]; maxlab=lab; for(i=0;i<n;i++){ if(a[i]>max){ max=a[i]; maxlab=i; } } printf("%d %d",max,maxlab); return 0; }
4.答案结果
题目二:7-3
1.题目
2.提交列表
3.设计思路(流程图)
定义子函数,输入n,循环输入数组,执行子函数,循环输出结果,判断下标是否为最大,再按条件输出
子函数(执行循环,每循环一次交换a[i] a[n-1-i])
流程图
代码如下
#include<stdio.h> void exchange(int a[],int n) { int i,t; for(i=0;i<n/2;i++){ t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t;} } int main(){ int a[100],n,i; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } exchange(a,n); for(i=0;i<n;i++){ if(i==n-1){ printf("%d",a[i]);} else{ printf("%d ",a[i]); } } return 0; }
4.提交答案
题目三:7-4 查找整数
1.题目
本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。
输入格式:
输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。
输出格式:
在一行中输出X的位置,或者“Not Found”。
2.提交结果
2.设计思路
定义变量,输入N,x,循环输入数组,在数组中寻找与X相等的数并输出,里flag=0,最后判定是否找到。
流程图
代码如下
#include<stdio.h>
int main()
{
int i,X,N,flag=1;
scanf("%d",&N);
scanf("%d",&X);
int a[N];
for(i=0;i<N;i++){
scanf("%d",&a[i]);
if(a[i]==X){
printf("%d",i);
flag=0;
}
}
if(flag==1)
printf("Not Found\n");
return 0;
}
4.答案结果
四、同学互评
同学代码
我的代码
3..我和同学的代码有哪些不同?各自有哪些优势?你更喜欢那种代码的风格?
与他相比,我的代码更简洁,少了一个子函数,他的代码更通俗易懂,我的选择是最简洁的代码。
四、本周学习总结
1.本周你学会了什么?
数组循环输出,子函数的调用,以及循环选择嵌套。