---恢复内容开始---
#include<stdio.h> int main() { int n,i,a[10],b=0; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } for(i=0;i<n;i++){ if(a[0]<a[i]){ a[0]=a[i]; b=i; } } printf("%d %d",a[0],b); return 0; }
- 设计思路:
- 第一步:构建函数基本框架。
- 第二步:定义变量n,i,b。对b赋0的初值。定义最大下标为9的整形数组。
- 第三步:输入n,确定输入数组的数据的个数。
- 第四步:将数据输入数组。
- 第五步:将a[0]与数组中的其他数进行一一比较,将最大值移到a[0],并使用b记录下标。
- 第六步:输出a[0]和b。
- 流程图:
- 遇到的问题:开始时遇到输入的一组数中有两个及以上最大值时,输出了那个较大的下标。
- 解决方法:逐步调试,发现只要将a[0]<=a[i]改成a[0]<a[i]就行了。
-
#include<stdio.h> int main() { int a[10],i,n,b,c,d,e; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } b=a[0]; c=a[n-1]; for(i=0;i<n;i++){ if(b>=a[i]){ b=a[i]; d=i; } } a[d]=a[0]; a[0]=b; for(i=0;i<n;i++){ if(c<=a[i]){ c=a[i]; e=i; } } a[e]=a[n-1]; a[n-1]=c; for(i=0;i<n;i++){ printf("%d ",a[i]); } return 0; }
- 第一步:构建函数基本框架。
- 第二步:定义数组a[10],变量i,n,b,c,d,e。
- 第三步:将数据输入数组,将a[0],a[n-1]分别赋值给b,c。
- 第三步:将最小值移动到b,并记录下下标,将a[0]的值与最小值互换。
- 第四步:将最大值移动到c,并记录下下标,在新顺序里,将a[n-1]的值与最大值互换。
- 第五步:输出数组a[i].
- 流程图:
- 遇到的问题:输入例题,输出的格式与例题的答案不对。
- 解决方法:将最小值与a[0]值的互换,放在找出最小值和下标之后。也就是a[d]=a[0];a[0]=b; 放在第二个for循环之后。
-
#include<stdio.h> int main() { int a[10],k,n,i,b,c; scanf("%d %d",&n,&k); for(i=0;i<n;i++){ scanf("%d",&a[i]); } for(i=1;i<=k;i++){ for(b=0;b<n-i;b++){ if(a[b]>a[b+1]){ c=a[b]; a[b]=a[b+1]; a[b+1]=c; } } } for(i=0;i<n-1;i++){ printf("%d ",a[i]); } if(i==n-1){ printf("%d",a[i]); } return 0; }
- 第一步:构建函数基本框架。
- 第二步:定义数组a[10],和变量k,n,i,b,c;
- 第三步:输入n和k。
- 第四步:将数据存入数组a。
- 第五步:用起泡法两两比较互换,将原本外层循环的n改为k。
- 第六步:输出按照格式输出数组,数组最后一个数不要加空格。
- 流程图:
- 遇到的问题:扫描的次数k不知道放到哪里,多次调试之后,才知道k应该放在外层循环。
-
#include<stdio.h> int main() { int a[12],i,b=2; a[0]=a[1]=1; for(i=2;i<12;i++){ a[i]=a[i-1]+a[i-2]; } for(i=0;i<12;i++){ printf("%6d",a[i]); if(i==b){ b=b+3; printf("\n"); } } return 0; }
- 第一步:构建函数基本框架。
- 第二步:定义数组a[12]、i、b。并且b=2,a[0]=a[1]=1;
- 第三步:计算下一个数据a[i]=a[i-1]+a[i-2]。
- 第四步:顺序输出数组a。
- 流程图:
- 遇到的错误:输出的数据无法形成矩阵。
- 解决方法:输出时加一个判断当i=2、5、8、11……输出\n符号。
- git地址:https://git.coding.net/Myboss/Homework.git
- 个人总结(涉及的知识点):1:数组的定义:数组定义时必须是整数表达式,不能是变量。2:数组的下标是从零开始的。3:赋初值时需要对数据加大括号,不能只输入一个数据就对整个数组赋初值。4.二维数组的定义第一个中括号是行数,第二个中括号是列数。5.当确定数据个数时,可以省略行或列。6.使用数据时不能超出数组的范围。7.二维数组的输入和输出是使用双层循环。8.对数组有选择排序法,和冒泡排序法。
-
代码行数 时间 博客字数 时间 涉及知识点 151 4h 300字左右 4h ———————— - 截图:
时间: 2024-11-13 10:28:13