1.输出整数各位数字
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。
输入格式:
输入在一行中给出一个长整型范围内的非负整数。
输出格式:
从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。
输入样例:
冒泡排序代码c语言123456
输出样例:
1 2 3 4 5 6
    (1)编程思路。
将一个非负整数number各位上的数字依次分离出来,其操作步骤为:
1)分离出number的个位数,即number%10。
2)将number除以10,作为新的number,即新的number丢掉了个位数。
3)如果number等于0,分离完毕,结束。否则,转第1)步,继续显示。
例如,number=1234,number%10=4, number=1234/10=123,得到数字4;
                      number%10=3, number=123/10=12,得到数字3;
number%10=2, number=12/10=1,得到数字2;
number%10=1, number=1/10=0,得到数字1;结束。
    将分离的各位数字依次存储到数组a中,然后逆序输出数组a中保存的各元素值即可。
    (2)源程序。
#include <stdio.h>
int main()
{
  long long n;
  scanf("%lld",&n);
  int a[20]={0},cnt=0;
  while (n!=0)
  {
      a[cnt++]=n%10;
      n=n/10;
  }
  if (cnt==0)
      printf("0 \n");
  else
  {
      for (int i=cnt-1;i>=0;i--)
          printf("%d ",a[i]);
      printf("\n");
  }
  return 0;
}
2.冒泡法排序
N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前import os要怎么安装N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。
本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。
输入格式:
输入在第1行中给出N和K(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。
输出格式:
熟悉socket编程>软件开发java四大框架在一行中输出冒泡排序法扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。
输入样例:
6 2
2 3 5 1 6 4
输出样例:
2 1 3 4 5 6
    (1)编程思路。
前k趟冒泡排序描述为:
for  (i=0;i<k;i++)
{
    // 对序列a[0]~a[n-1-i]从头到尾对前后相邻两数进行比较,逆序则交换
    for (j=0;j<n-1-i;j++)
      if (a[j]>a[j+1])
      { t=a[j]; a[j]=a[j+1]; a[j+1]=t;  }
}
    (2)源程序。
#include <stdio.h>
int main()
{
  int a[100];
  int n,k;
  scanf("%d%d",&n,&k);
  int i,j,t;
  for (i=0;i<n;i++)
驽马十驾的驽马是什么意思
      scanf("%d",&a[i]);
  for (i=0;i<k;i++)
      for (j=0;j<n-1-i;j++)
        if (a[j]>a[j+1])
        {
          t=a[j]; a[j]=a[j+1]; a[j+1]=t;
        }
  printf("%d",a[0]);
  for (i=1;i<n;i++)
      printf(" %d",a[i]);
  printf("\n");
  return 0;
}
3.评委打分
班级里要搞智力竞赛啦!同学们都踊跃参加。进入最后决赛的是10个同学,随着一道道题目的出示,有时是1号选手得分,有时是5号选手得分,每次答对者得10分,最后结果如何呢?
输入格式:
第一行有十个整数,表示十位同学的初始分。第二行一个整数n,表示有n道题竞赛。 接下去有n行,每行有一个数字x,x表示本次可以加分的选手序号(每次答对者得10分)。
输出格式:
10个同学最终的得分值,每两位同学之间有一个空格。
输入样例:
10 0 0 0 10 10 0 0 0 10
3
1
游戏开发学什么专业10
1
输出样例:
30 0 0 0 10 10 0 0 0 20
    (1)编程思路。
  定义数组int a[11];其中a[1]~a[10]分别保存序号为1~10的选手的得分。每次输入本次可以加分的选手序号x后,数组元素a[x]加10分即可。
    (2)源程序。
#include <stdio.h>
int main()
{
  int a[11];
  int i;
  for (i=1;i<=10;i++)
      scanf("%d",&a[i]);
  int n,k;
  scanf("%d",&n);
  for (i=1;i<=n;i++)
  {
      scanf("%d",&k);
      a[k]+=10;
  }
  printf("%d",a[1]);
  for (i=2;i<=10;i++)
      printf(" %d",a[i]);
  printf("\n");
  return 0;
}
4.组合数的和
给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。