题目A 零基础学C/C++90——数组输出
要点
#include
int main()
{
int t;
scanf("%d",&t);
while (t--){
int n;
scanf("%d",&n);
int a[20];
for (int i=0;i
题目B 零基础学C/C++91——逆序输出
要点
#include
int main()
{
int t;
scanf("%d",&t);
while (t--){
int n;
scanf("%d",&n);
int a[20];
for (int i=0;i=0;i--) printf("%d ",a[i]);
printf("\n");
}
return 0;
}
题目C 零基础学C/C++92——找出数组中最大元素的位置(下标值)
要点
- 如何在遍历数组的时候储存最大值和下标
- 最大值为什么要初始化
#include
int main()
{
int n;
while (~scanf("%d",&n)){
int a[20];
for (int i=0;i=0;i--){
if (a[i]>maxa){
maxa = a[i];
id = i;
}
}
printf("%d %d\n",maxa,id);
}
return 0;
}
题目D 零基础学C/C++93——Fibonacci数列
要点
#include
int main()
{
int a[50];
a[0] = 0,a[1] = 1;
for (int i=2;i<=45;i++) a[i] = a[i-1] + a[i-2];
int t;
scanf("%d",&t);
while (t--){
int n;
scanf("%d",&n);
printf("%d\n",a[n]);
}
return 0;
}
题目E 零基础学C/C++94——数组中查找数
要点
- 怎么判断找不到,初始化下标为-1
- break的使用
#include
int main()
{
int n,m,a[20];
while (~scanf("%d",&n)){
for (int i=0;i
题目F 零基础学C/C++95——数组中删数
要点
- 这题承接上面这题,我们可以找到一个数的下标,那么怎么删除呢,其实只要输出的时候不输出这个下标就行了,这个时候顺便了解一下continue的作业——跳过这次循环
- 讲解一下first的作用第一次输入数字前没有空格之后都有空格,保证最后一个数后面没有空格
#include
int main()
{
int n,m,a[20];
while (~scanf("%d",&n)){
for (int i=0;i
题目G 零基础学C/C++96——数组中删数II
要点
- 这一题和上一题相比就是删除很多个数,那么是不是可以同样的思路,不输出就行了,而且仔细想想是不是下标都不用找,更简单了?
#include
int main()
{
int n,m,a[20];
while (~scanf("%d",&n)){
for (int i=0;i
题目H 零基础学C/C++97——数组中插入一个数
要点
- 如何腾出这一个位置:把这个数需要存的下标到末尾的数全部往后移一个位置,要先移动右边的再移动左边的才不会覆盖
#include
int main()
{
int n,m,k,a[20];
while (~scanf("%d",&n)){
for (int i=0;i=a[i]) idx = i+1;
}
for (int i=n-1;i>=idx;i--) a[i+1] = a[i];
a[idx] = m;
for (int i=0;i<=n;i++) printf("%d ",a[i]);
printf("\n");
printf("%d\n",a[k]);
}
return 0;
}
题目I 零基础学C/C++98——打印所有低于平均分的分数
要点
- 如何求平均数以及注意点,平均数求出来可能不是整数,注意不要用整数的乘法去做,这里写double(之前long long a = (longlong)50000*50000的例子我们也说过)
#include
int main()
{
int n,a[100];
while (~scanf("%d",&n)){
int sum = 0;
for (int i=0;i
题目J 零基础学C/C++99——青年歌手大奖赛_评委会打分
要点
- 终点是如何实现去掉一个最高最低分的过程,只要最后求出和减去最大最小值即可。
#include
int main()
{
int n,a[100];
while (~scanf("%d",&n)){
int maxs = -1000,mins = 1000;
int sum = 0;
for (int i=0;imaxs) maxs = a[i];
if (a[i]
题目K 零基础学C/C++100——开灯问题
要点
- 如何模拟灯的开关?用正负1来表示
- 电脑编号从1开始,数组要不要从0开始,不建议,从1开始更清楚
- 讲清楚两层for循环的意义,第一层是第几回合
- 说明多组输入的情况下某些数据要初始化,这里我们可以把初始化放到外面此时就不对了,然后现在正好可以用很生动形象的例子讲解:第一次结束出去,第二次电脑不是全关着的。
#include
int main()
{
int n,a[100];
while (~scanf("%d",&n)){
for (int i=0;i