写在前面
没想到拖更了这么这么这么久,五六月份比我想象的要忙碌的多的多...一边是经济有考试,一边C++还有机考,还要学高数和概率论,卷绩点实在是有亿点累。现在暑假也闲不下来,还有证要考,所以这一篇实际上是硬挤出来的,可能质量不好但是拖更太久我也有点不好意思。以10道题为一篇来更新体量确实是有点小了,然而50道题一篇我又有些吃不消,所以以后可能20题一更吧,感谢大家理解。代码在oj上是可以通过的但或许还会有不足之处,仅供参考,如果有发现问题请评论或私聊我,我看到了一定会回复的。
1211
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a[15] = { 0 };
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
int loc;
int num;
cin >> loc >> num;
for (int i = n + 1; i >= loc; i--)
{
a[i] = a[i - 1];
}
a[loc] = num;
for (int i = 1; i <= n + 1; i++)
{
cout << a[i] << " ";
}
return 0;
}
1212
#include <iostream>
using namespace std;
int main()
{
int a[100];
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
int min = 2147483647;//int所能存储的最大值
int min_sub;
int max = -2147483647;
int max_sub;
for (int i = 0; i < n; i++)//找出最小数的下标
{
if (a[i] < min)
{
min = a[i];
min_sub = i;
}
}
for (int i = 0; i < n; i++)//找出最大数的下标
{
if (a[i] > max)
{
max = a[i];
max_sub = i;
}
}
int temp = a[0];//交换
a[0] = a[min_sub];
a[min_sub] = temp;
temp = a[n - 1];
a[n - 1] = a[max_sub];
a[max_sub] = temp;
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
return 0;
}
1213
#include <iostream>
using namespace std;
int main()
{
int a[100];
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
int min = 2147483647;//int所能存储的最大值
int min_sub;
for (int i = 0; i < n; i++)//找出最小数的下标
{
if (a[i] < min)
{
min = a[i];
min_sub = i;
}
}
for (int i = 0; i < n; i++)
{
if (i != min_sub)
{
cout << a[i] << " ";
}
}
return 0;
}
1214
#include <iostream>
using namespace std;
int main()
{
int a[101];
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
int num;
cin >> num;
int max = -2147483647;//int所能存储的最小值
int max_sub;
for (int i = 0; i < n; i++)//找出最大数的下标
{
if (a[i] > max)
{
max = a[i];
max_sub = i;
}
}
for (int i = n-1; i > max_sub; i--)//最大数的后面所有数都往后移一位,给插入的数腾出空间
{
a[i + 1] = a[i];
}
a[max_sub + 1] = num;
for (int i = 0; i < n + 1; i++)
{
cout << a[i] << " ";
}
return 0;
}
1215
稍微动动手画一下流程图就能搞定
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a[200];
int num = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (a[i] > a[j])
{
num++;
}
}
}
cout << num;
}
1216
感谢@醅浮 提供的答案,感谢!
#include<iostream>
using namespace std;
int n;
int a[101][101];
int dp[101][101];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
cin>>a[i][j];
dp[i][j]=a[i][j];
}
}
for(int i=n-1;i>=1;i--)
{
for(int j=1;j<=i;j++)
{
dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+a[i][j];
}
}
cout<<dp[1][1];
}
1217
#include <iostream>
using namespace std;
int main()
{
int n, num_xiaoming_front, num_xiaoming;
cin >> n >> num_xiaoming_front >> num_xiaoming;
int a[100];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
if (a[i] == num_xiaoming_front)
{
cout << num_xiaoming << " ";
}
}
}
1218
注意double,要不然求出来是整数。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n;
cin >> n;
int a[100];
int min = 2147483647;
double sum = 0;
double num = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i];
if (a[i] < min)
{
min = a[i];
}
}
for (int i = 0; i < n; i++)
{
if (a[i] != min)
{
sum += a[i];
num++;
}
}
cout << fixed << setprecision(1) << sum / num;
}
1219
之前的题目有一大堆嵌套循环的,思路和那里类似。
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 0; i < n / 2 + 1; i++)
{
for (int k = 0; k < i; k++)
{
cout << " ";
}
for (int j = 0; j < n; j++)
{
cout << "*";
}
cout << endl;
}
for (int i = n / 2; i > 0; i--)
{
for (int k = 0; k < i-1; k++)
{
cout << " ";
}
for (int j = 0; j < n; j++)
{
cout << "*";
}
cout << endl;
}
}
1220
因为要求蛋挞数量尽量少,所以把蛋挞数放在外层循环,这样每次遍历一遍面包,如果有能把钱花完的话就直接结束掉,否则把蛋挞数加一然后继续跑面包循环。当有符合条件的时候直接return终止程序,用break只能跳出一层循环,不好使,可以试试如果把return换成break之后会有什么结果。
注意钱一定要花完!
#include <iostream>
using namespace std;
int main()
{
int money, bread_price, tart_price;
cin >> money >> bread_price >> tart_price;
for (int i = 1; i <= money / tart_price; i++)
{
for (int j = 1; j <= money / bread_price; j++)
{
if (i * tart_price + j * bread_price == money)
{
cout << j << " " << i;
return 0;
}
}
}
}