1.累加和
任务描述
本关任务:向数组中输入 10 个数,并做累加和。
相关知识
本题考察的是累加,因为数据放在数组中,所以要对数组进行遍历,在遍历的过程中完成累加
编程要求
根据提示,在右侧编辑器补充代码,使得程序的输出结果和预期输出一致。
测试说明
平台会对你编写的代码进行测试:
测试输入:1 1 1 1 1 1 1 1 1 1
; 预期输出: 10
main()
{
int i,a[10],sum=0;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
printf("%d ",sum);
}
2.用数组生成斐波那契数列
任务描述
本关任务:编写一个能输出斐波那契数列的小程序,要求输出前 10 项。
相关知识
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因意大利数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。 斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89..,这个数列从第3项开始,每一项都等于前两项之和。 在数学上,斐波那契数列以如下递推的方法定义: F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。
编程要求
根据提示,在右侧编辑器补充代码,使得程序的输出结果和预期输出一致。
测试说明
平台会对你编写的代码进行测试:
测试输入:1
1
; 预期输出: 1 1 2 3 5 8 13 21 34 55
main()
{
int i;
int f[10];
//请输入前两个值
scanf("%d %d",&f[0],&f[1]);
/*******begin*********/
for(i=2;i<10;i++){
f[i]=f[i-1]+f[i-2];
}
for(i=0;i<10;i++){
printf("%d ",f[i]);
}
/*******end***********/
}
3.查找整数
任务描述
题目描述:给出一个包含n
个整数的数列,问整数a
在数列中的第一次出现是第几个。
相关知识(略)
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码。 输入 第一行包含一个整数n
。 第二行包含n
个非负整数,为给定的数列,数列中的每个数都不大于10000
。 第三行包含一个整数a
,为待查找的数。 输出 如果a
在数列中出现了,输出它第一次出现的位置(位置从1
开始编号),否则输出-1
。
测试说明
样例输入: 6
1 9 4 8 3 9
9
样例输出: 2
提示: 数据规模与约定。 1 <= n <= 1000
#include<stdio.h>
int main(void) {
/*********Begin*********/
int n, s[n], a,i,j;
scanf("%d", & n);
for (i = 0; i < n; i++) {
scanf("%d", & s[i]);
}
scanf("%d", & a);
for (j = 0; j < n; j++) {
if (s[j] == a) {
printf("%d", j + 1);
break;
}
if(j==n-1){
printf("-1");
}
}
/*********End**********/
return 0;
}
4.折半查找
任务描述
本关任务:由N
个有序整数组成的数列已放在一维数组中,给定程序的功能是:利用折半查找法查找整数m
在数组中的位置。若找到,返回其下标值,否则返回-1
。
相关知识
相关知识略
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End
区域内进行代码补充,完成编写折半查找的小程序。
测试说明
平台会对你编写的代码进行测试:
测试输入: 5
预期输出: -5 4 9 15 28 45 66 89 100 180
Not be found!
测试输入: 9
预期输出: -5 4 9 15 28 45 66 89 100 180
m=9,index=2
#include <stdio.h>
#define N 10
int main()
{
int i, a[N]={-5,4,9,15,28,45,66,89,100,180 }, k=-1, m;
int low=0, high=N-1, mid;
for(i=0;i<N;i++)
printf("%d ", a[i]);
printf("\n");
scanf("%d",&m);
while(low <= high)
{
mid = (low + high) / 2;
if(m < a[mid])
high = mid-1;
/***** 以下一行有错误 *****/
else if(m > a[mid])
low=mid+1;
/***** 以下一行有错误 *****/
else if(m == a[mid])
{
k=mid;
break;
}
else
k=-1;
}
if(k>=0)
printf("m=%d,index=%d\n",m,k);
else
printf("Not be found!\n");
return 0;
}
5.逆序排列
任务描述
本关任务:输入一个有 5 个元素的数组,并将其逆序。
编程要求
根据提示,在右侧编辑器补充代码,使得程序的输出结果和预期输出一致。
相关知识
如果数组有5个元素,那对它的逆序即数组的第一个元素和第4个元素交换,第二个元素和第3个元素交换.....以此来完成逆序
测试说明
平台会对你编写的代码进行测试:
测试输入:1
2
3
4
5
; 预期输出: 5 4 3 2 1
main()
{
int a[5],temp;
int i,j;
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
/*************begin***********/
for(j=0;j<3;j++){
temp=a[j];
a[j]=a[4-j];
a[4-j]=temp;
}
/*************end*************/
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
}
6.排序问题
任务描述
本关任务:将十个数进行从大到小的顺序进行排列。
相关知识(略)
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码。 输入 输入十个整数。
输出 以从大到小的顺序输出这个十个数。
测试说明
样例输入: 1 2 3 4 5 6 7 8 9 10
样例输出: 10 9 8 7 6 5 4 3 2 1
#include<stdio.h>
int main(void)
{
/*********Begin*********/
int a[10],j,i,t;
for(i=0;i<10;i++){
scanf("%d",&a[i]);
}
for(i=0;i<10;i++){
for(j=i;j<10;j++){
if(a[i]<a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
/*********End**********/
return 0;
}
7.删除最大值
任务描述
题目描述:输入10
个互不相同的整数并保存在数组中,找到该最大元素并删除它,输出删除后的数组
相关知识(略)
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End
区域内进行代码补充,完成编写删除最大值的小程序。
输入
输入10
个互不相同整数
输出
输出删除最大元素后的数组
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
样例输入:
1 2 3 4 5 6 7 8 9 0
样例输出:
1 2 3 4 5 6 7 8 0
#include<stdio.h>
int main(void)
{
/*********Begin*********/
int a[10],j,i,max,t,flag=0;
for(i=0;i<10;i++){
scanf("%d",&a[i]);
}
max=a[0];
t=a[0];
for(j=0;j<10;j++){
if(t<a[j]){
t=a[j];
}
}
for(i=0;i<10;i++){
if(a[i]!=t)
printf("%d ",a[i]);
else
continue;
}
/*********End**********/
return 0;
}
课程资源,总有人需要。