问题A 零基础学C/C++101——最大数与数列最后一个数交换
要点
#include
int main()
{
int n,a[100];
while (~scanf("%d",&n)){
for (int i=0;imaxa){
maxa = a[i];
idx = i;
}
}
int t = a[idx];
a[idx] = a[n-1];
a[n-1] = t;
for (int i=0;i
问题B 零基础学C/C++102——最小数与数列第一个数交换
要点
- 比起上题这一题记录最小值和下标,注意适合第一个数交换也就是下标为0的数
#include
int main()
{
int n,a[100];
while (~scanf("%d",&n)){
for (int i=0;i
问题C 零基础学C/C++103——找出一个数组中出现次数最多的那个元素
要点
- 这题比较难讲,我们另外开一个数组,储存数量,为什么只要遍历到i-1就行了,我们分类讨论:1.当前是最后,正确 2.当前不是最后,那么后面可能正确。
#include
int main()
{
int n,a[100],cnt[100];
while (~scanf("%d",&n)){
for (int i=0;i
问题D 零基础学C/C++104——查找某一个数
要点
#include
int main()
{
int n,a[100],x;
while (~scanf("%d%d",&x,&n)){
for (int i=0;i
问题E 零基础学C/C++105——元素前移1位
要点
- 代码写的是偷懒的办法,考察这题需要用另外一种写法,就是先记录一下a[0],然后a1~an左移,然后a0放到an-1
#include
int main()
{
int n,a[100];
while (~scanf("%d",&n)){
for (int i=0;i
问题F 进制转换
要点
- 重点之一:进制转换本身,就是不停从后面取余数,然后除自身的做法
- 此题与负数取余无关,只是进制转换,把负号去掉即可
- 没必要讲7%-3,-7%3,结果是都都取商更趋向0的那一种,在C++中
#include
int main()
{
int n,r;
while (~scanf("%d %d",&n,&r)){
int flag = 1;
if (n<0) {
flag = -1;
n = -n;
}
int a[100],idx = 0;
while (n!=0){
a[idx++] = n%r;
n = n/r;
}
if (flag==-1) printf("-");
for (int i=idx-1;i>=0;i--){
if (a[i]>=10) printf("%c",a[i]-10+'A');
else printf("%d",a[i]);
}
printf("\n");
}
return 0;
}
问题G 零基础学C/C++107——插入一个数到数列中
要点
- 再次强调如何把数插入到数列中——后面的后移
- 顺便讲一下数组初始化的方法
#include
int main()
{
int m;
while (~scanf("%d",&m)){
int a[10] = {0, 10, 20, 30, 40, 50, 60, 70, 80, 0};
int idx = 0;
for (int i=0;i<9;i++){
if (m>=a[i]) idx = i+1;
}
for (int i=8;i>=idx;i--) a[i+1] = a[i];
a[idx] = m;
for (int i=0;i<10;i++){
printf("%d ",a[i]);
}
printf("\n");
}
return 0;
}
问题H 零基础学C/C++108——程序设计竞赛
要点
#include
int main()
{
int n,a[30];
while (~scanf("%d",&n)){
for (int i=0;i
**问题L 零基础学C/C++112——偶数排序 **
要点
- 首先一个很正常的思路就是把普通的奇数变成绝对值很大的负数,统计数量
- 然后排完序不输出哪几个就行了
- 然后强调一下,奇数取余可能是-1,也可能是正1,比如-7%2==-1,所以可以用&1或者等于±1
#include
int main()
{
int n,a[30];
while (~scanf("%d",&n)){
int jishu = 0;
for (int i=0;i
问题M 零基础学C/C++113——并列排名
要点
- 我们要查的分数是这些一样中的第一个,那么我们只需要知道比这靠前的有多少个,下一个就是对应的排名。
#include
int main()
{
int n,a[100];
while (~scanf("%d",&n)){
for (int i=0;i