数组一
1.斐波那契数列
2.统计天数
3.淘淘摘苹果
4.插队问题
5.队伍调整
6.整理题库
7.删除试题
这里由于输入50个学生样例太多就改成了10个学生,实际效果一样
要在程序中使用下标变量,必须先说明这些下标变量的整体为数组,即数组是若干个同名下标 变量的集合,这些变量的类型全部一致。
数组越界这种错误在编译器中通常显示为,段错误
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, a[100] = {1, 1, 1};
cin >> n;
for (int i = 3; i <= n; i++) {
a[i] = a[i - 1] + a[i - 2];//计算斐波那契数列
}
for (int i = n; i >= 1; i--) {//倒着输出
if (i != 1)
cout << a[i] << " ";
else
cout << a[i];
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main() {
int y, m, d = 1, sum = 0; //d初始化为1
cin >> y >> m >> d;
sum += d;
for (int i = 1; i < m; i++) { //i<m
if (i == 4 || i == 6 || i == 9 || i == 11)
sum += 31;
else if (i == 2)
sum += 28;
else
sum += 30;
}
if (m > 2 && (y % 4 == 0 && y % 100 == 0 || y % 400 != 0))//判断输入的月数是否大于2
//并且年份是否为闰年,由于闰年里2月有29天所以sum+=1;
sum++;
cout << sum << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main() {
//将每个月份对应的天数存到数组里(及用自己需要的数据初始化数组)
//数组的第一个数初始化为0是因为第一个数组的下标为0而循环的时候第一个数组是从下标为1开始的
int a[20] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int y, m, d,sum=0;
cin >> y >> m >> d;
sum +=d;
for (int i = 1; i < m; i++) {
sum += a[i];
}
if (m > 2 && (y % 4 == 0 && y % 100 != 0 || y % 400 == 0))
//注意:一定要记得:判断闰年前提是所给月份数据是否大于2
sum++;
cout << sum << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, h, a[100000], sum = 0;
cin >> n;
for (int i = 1; i <= n; i++) {//储存苹果的高度
cin >> a[i];
}
cin >> h;
for (int i = 1; i <= n; i++) {
if (h + 30 >= a[i])
sum++;
}
cout << sum << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, a[1000], k;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
cin >> k;
int b = a[n];
for (int j = n; j >= k; j--) {//把要指定位置后的数都向后排一位
a[j + 1] = a[j];
}
a[k] = b;
for (int i = 1; i <= n; i++) {
if (i == 1)
cout << a[1];
else
cout << " " << a[i];
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, a[1000], k;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
cin >> k;
for (int i = k; i <= n - 1; i++) {
a[i] = a[i + 1];
}
for (int i = 1; i <= n - 1; i++) {
if (i != 1)
cout << " ";
cout << a[i];
}
return 0;
}
⭐⭐⭐⭐⭐
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, x, a[1000], k = 0;
cin >> n >> x;
for (int i = 0; i < n; i++)
cin >> a[i];
for (int i = 0; i < n; i++) {
if (x != a[i])//a[k++]=a[i]-->a[k]=a[i];k++;
a[k++] = a[i];//这里将不是指定数字的数重新存入一个新的数组方便空格的输出
}
for (int i = 0; i < k; i++) {
if (i)
cout << " ";
cout << a[i];
}
return 0;
}