十个数算法
1. 设计一个计算10个数的平均数的算法 (用直到型和当型)
算法可以这样描述:
S1:S=0;
S2:I=1;
S3:输入一个数G;
S4:使S+G,其和仍放S中;
S5:使I的值增加1;
S6:如果I>10,退出循环,如果I≤10重复S3;
S7:将平均数S/10存放在A中;
S8:输出A.
按着算法就可以画程序框图了
2. 输入10个数,用冒泡排序法按由小到大顺序排序并输出c语言的
冒泡排序的程序代码如下:
#include<stdio.h>
int main()
{
int a[10]={0};
int i=0,j=0,t=0;
for(i=0;i<10;i++)
{scanf("%d",&a[i]);}
for(i=0;i<10;i++)
{for(j=0;j<10-i;j++){
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}}}
for(i=0;i<10;i++)
{printf("%d ",a[i]);}
return 0;}
任意输入十个数据,程序运行结果:
(2)十个数算法扩展阅读:
冒泡排序算法的原理如下:
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
3. 利用选择法,描述将10个数按从大到小顺序排列的基本思路与算法流程
选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最大的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。
java选择排序法代码
import java.util.Random;
public class ArrayDemo {
public static void main(String[] args) {
Random random=new Random();
int[] pData=new int[10];
for(int i=0;i<pData.length;i++){ //随机生成10个排序数
Integer a =random.nextInt(100);
pData[i]= a;
System.out.print(pData[i]+" ");
}
System.out.println();
pData=Choose(pData);
for(int i=0;i<pData.length;i++){
System.out.print(pData[i]+" ");
}
System.out.println();
}
public static int[] Choose(int[] pData){
System.out.println();
int k;
for (int i = 0; i < pData.length; i++) {
k = i;
for (int j = i; j < pData.length; j++) {
if(pData[j]<pData[k]){k = j;}
}
int a=pData[i];
pData[i]=pData[k];
pData[k]=a;
}
return pData;
}
}
(3)十个数算法扩展阅读:
其他排序方法:
简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;
以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。
以下为简单选择排序的存储状态,其中大括号内为无序区,大括号外为有序序列:
初始序列:{49 27 65 97 76 12 38}
第1趟:12与49交换:12{27 65 97 76 49 38}
第2趟:27不动:12 27{65 97 76 49 38}
第3趟:65与38交换:12 27 38{97 76 49 65}
第4趟:97与49交换:12 27 38 49{76 97 65}
第5趟:76与65交换:12 27 38 49 65{97 76}
第6趟:97与76交换:12 27 38 49 65 76 97 完成
4. 设计一个计算10个数的平均数的算法的程序框图.
思路分析:我们用一个循环依次输入10个数,再用一个变量存放数的累加和,在求出10个数的和后,除以10,就可得到10个数的平均数.本题可用两种循环方式. 解法一:用循环形式2循环结构设计算法框图如图1-1-9(1): 虚线框内就是循环形式2循环结构,其中包含一个条件分支结构. (1) (2) 图1-1-9 解法二:用循环形式1循环结构设计算法框图如图1-1-9(2).虚线框内就是循环形式1循环结构,其中包含一个条件结构. 点评:一个循环结构,可以用形式1,也可以用形式2.但根据条件限制的不同,有时用形式1比形式2好,有时用形式2比形式1好,关键看条件.有时用两种类型都很方便,我们要学会分析题目的控制循环条件,循环结构前、后都可以有多个语句,这两个循环结构内还包含着一个顺序结构.一般说来,这三种结构贯穿于程序中,相互结合,使程序更完美.但在一个算法中,这三种结构不一定同时存在,可能会有一种或两种不存在.
5. ‘’构造一个算法,找出十个数字中最小的那个数‘’怎么做
定义最小值变量,初始化为第一个数字值。
依次与剩余9个数对比, 如果当前最小值,比这个数小,则赋值该数为最小值。
遍历后, 最小值变量中存储的 就是十个数的最小值了。
6. 依次将10个数输入,要求将其中最大的数输出.这个问题的算法怎么写才好啊><
用打擂台的方法。。。基本意思就是将第一个数放进去,然后依次和10个数比,大的留下。算法如下:#include<stdio.h>
int main()
{
int a[10],i,max;//定义一个数组来存放着10数。
printf("please enter 10 numbers:\n");
for(i=0;i<10;i++)//用一个for循环来输入10数。
scanf("%d",&a[i]);
for(max=a[0],i=0;i<10;i++)//用for循环让这10个数一次和max比。
if(max<a[i])
max=a[i];
printf("The max number is:%d\n",max);
return 0;
}经过验证 没有错误。这是学习数组的一个非常基本的程序
7. 设计一个计算10个数的平均数的算法 (用直到型和当型)
算法可以这样描述:
S1:S=0;
S2:I=1;
S3:输入一个数G;
S4:使S+G,其和仍放S中;
S5:使I的值增加1;
S6:如果I>10,退出循环,如果I≤10重复S3;
S7:将平均数S/10存放在A中;
S8:输出A.
按着算法就可以画程序框图了