精华内容
下载资源
问答
  • 请问在这个约瑟夫问题中,把数组定义在main()函数前与下面程序中定义的数组方式 有什么异同? 为什么在VC6.0中认为示例程序数组错误,而在dev C++中却没事 ``` #include #include <iomanip> //调用setw()函数 ...
  • 输出数组全排列,c++递归实现

    千次阅读 2019-07-11 21:03:56
    输出数组全排列,c++实现。 思想:长度为n的数组的全排列,相当于选择数组中的每一个数作为开头,再对剩余数进行全排列。 #include<cstdio> int count = 0; void myswap(int& a, int& b) { int ...

    输出数组全排列,c++实现。

    思想:长度为n的数组的全排列,相当于选择数组中的每一个数作为开头,再对剩余数进行全排列。

    #include<cstdio>
    
    int count = 0;
    
    void myswap(int& a, int& b)
    {
    	int t = a; a = b; b = t;
    }
    
    //对数组p下标为m到n-1的元素进行全排列
    void perm(int* p, int m, int n)
    {
    	if (m == n - 1)
    	{
    		count++;
    		for (int i = 0; i < n; i++)
    			printf("%d ", p[i]);
    		printf("\n");
    	}
    	for (int i = m; i < n; i++)
    	{
    		if (i == m)//i == m时无需交换p[i]和p[m]的值
    			perm(p, m + 1, n);
    		else
    		{
    			myswap(p[i], p[m]);
    			perm(p, m + 1, n);
    			myswap(p[i], p[m]);
    		}
    	}
    }
    
    int main()
    {
    	int p[50];
    	int n = 0;
    	printf("请输入待排列的数字,空格隔开,回车结束:");
    	do
    	{
    		scanf_s("%d", &p[n++]);
    	} while (getchar() != '\n');
    	perm(p, 0, n);
    	printf("%d个全排列\n", count);
    	return 0;
    }

     

    展开全文
  • C语言程序设计实践-数组初步

    千次阅读 2016-11-30 09:11:36
    (1)创建一个有20个元素的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后(从第0个到第19个)输出数组中元素的值,每5个元素换一行。int main( ) { int a[20]={....

    【项目1 - 数组大折腾】
    (1)创建一个有20个元素的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后(从第0个到第19个)输出数组中元素的值,每5个元素换一行。

    int main( )  
    {  
        int a[20]={...};  //初始化前10个元素  
        //键盘输入后10个元素的值  
    
        //由前往后输出数组中所有元素的值  
        printf("由前往后,数组中的值是:\n");  
    
        return 0;  
    }  

    (2)创建一个长度为10的整型数组并初始化,由后往前(由第9个元素向第0个元素方向)输出数组中所有元素的值,改变数组元素的值,令所有的数据加倍,输出改变后的值。
    (3)创建一个长度为16的整型数组a并初始化,先输出数组中元素值为3的倍数的数,再输出所有下标为3的倍数的元素值。输出如图示。
    这里写图片描述
    (4)创建一个长度为16的整型数组a并初始化,删除数组中所有能被3整除的元素(数组中实际有效使用的元素将不足16),输出删除后数组中的全部元素。
    (5)创建一个长度为16的整型数组a并初始化前15个元素,输入一个整数b,将b插入到a[0]位置(原有的数据往后“移动”)。
    参考解答

    【项目2 - 成绩处理函数版】
      在数组score中将要存储了某小组C程序设计的成绩,请设计实现下面的各功能函数,并在main函数中调用,组合成一个完整的应用:
    (1)输入小组人数及成绩,要保证成绩在0-100之间;
    (2)输出该小组的最高成绩、最低成绩、平均成绩;
    (3)输出考得最高成绩和最低成绩的同学的人数;
    (4)输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。
    (5)求出所有同学成绩的标准偏差,标准偏差公式为这里写图片描述,其中 xi 为样本(即某同学成绩),这里写图片描述为均值(前面已经求出), N <script type="math/tex" id="MathJax-Element-50">N</script>为样本数目;
    界面参考见图
    这里写图片描述

      “成绩处理”是该功能不用函数的实现。本项目要求输入、求最大/小值等所有功能都通过自定义函数完成。这种设计貌似比不用函数的方法麻烦,但这只是对函数不熟悉时的感觉。而实际上,采用函数的做法,在结构有更多的优点,尤其是当程序的规模更大时。通过这个项目,学会将数组名用作函数的参数解决问题的方法。
      下面是建议的自定义函数的声明和main()函数,你需要定义这些函数。

    void input_score(int s[], int n); //将小组中n名同学的成绩输入数组s  
    int get_max_score(int s[], int n);  //返回数组s中n名同学的最高成绩值  
    int get_min_score(int s[], int n);  //返回数组s中n名同学的最低成绩值  
    double get_avg_score(int s[], int n);  //返回数组s中n名同学的平均成绩值  
    double get_stdev_score(int s[], int n); //返回数组s中n名同学成绩值的标准偏差  
    int count(int x, int s[], int n);  //返回在数组s中n名同学中有多少人得x分(实参给出最高/低时,可以求最高/低成绩的人数)  
    void output_index(int x, int s[], int n); //在函数中输出数组s中n名同学中得x分的学号(下标)  
    
    int main( )  
    {  
        int score[50]; //将score设为局部变量,通过数组名作函数参数,传递数组首地址,在函数中操作数组  
        int num;       //小组人数也设为局部变量,将作为函数的实际参数  
        int max_score,min_score;  
        printf("小组共有多少名同学? ");  
        scanf("%d", &num);  
        printf("请输入学生成绩:\n");  
        input_score(score, num);  //要求成绩在0-100之间  
        max_score=get_max_score(score, num);  
        printf("最高成绩为:%d,共有 %d 人\n", max_score, count(max_score, score, num ));  
        min_score=get_min_score(score, num);  
        printf("最低成绩为:%d,共有 %d 人\n", min_score, count(min_score,score, num ));  
        printf("平均成绩为:%.2f\n", get_avg_score(score, num));  
        printf("标准偏差为:%.2f\n",get_stdev_score(score, num));  
        printf("获最高成绩的学生(学号)有:");  
        output_index(max_score,score, num);  
        printf("\n获最低成绩的学生(学号)有:");  
        output_index(min_score,score, num);  
        printf("\n");  
        return 0;  
    } 

    参考解答

    【项目3-折腾二维数组】
      创建一个5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后:

    • 通过键盘输入,使后两列的10个元素获得值;
    • 按行序优先输出数组元素;
    • 将所有元素值乘以3后保存在数组中;
    • 按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”);
    • 将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出);
    • 输出数组中的所有偶数;
    • 输出所有行列下标之和为3的倍数的元素值。
    #include <stdio.h>  
    int main( )  
    {  
        int i,j;  
        //创建数组,为数组中的前两列的10个元素赋初值  
        int a[5][4]= {{0,1},{4,5},{8,9},{12,13},{16,17}};  
    
    
        //键盘输入后两列10个元素的值  
        printf("请输入10个整数:\n");  
    
    
        //按行序优先输出  
        printf("数组中的值为:\n");  
    
    
        //将所有元素值乘以3后保存在数组中  
        printf("现在将所有元素乘以3倍...";  
    
    
        //按行序优先输出  
        printf("行序优先输出:\n");  
    
    
        //按列序优先输出(见题目描述)  
        printf("列序优先输出:\n");  
    
    
        //将数组“倒”着输出(见题目描述)  
        printf("倒着输出:\n");  
    
    
        //输出数组中的所有偶数  
        printf("数组中的偶数:\n");  
    
    
        //输出所有行列下标之和为3的倍数的元素值  
        printf("行列下标之和为3的倍数的元素:\n");  
    
    
        return 0;  
    }  

    提示:编程时,可以做一点,调一点。参考的运行界面如图:
    这里写图片描述
    参考解答

    【项目4-矩阵运算】
      在数学中,一个矩阵由若干行和若干列数据组成,可以直接存储为一个二维数组。
    (1)矩阵相加
      两个矩阵相加,要求其行、列数均相等。运算规则为:一个n行m列的矩阵A加上另一个n行m列的矩阵,得到的结果是一个n行m列的矩阵C,C中的第i行第j列位置上的数等于A和B矩阵第i行第j列上数相加的和。例如:
    这里写图片描述
      请编程序,实现两个矩阵的加法。

    (2)矩阵相乘
      一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和。
      例如,下面的算式表示一个2行3列的矩阵乘以3行4列的矩阵,其结果是一个2行4列的矩阵:
    这里写图片描述
      按二维数组习惯,从第0行第0列开始计数,结果中第1行第2列的元素是9,是通过左矩阵中的第1行(2 0 3),乘以右矩阵中的第2列(3 2 1),对应数相乘并加起来,就得到了9,即2×3-0×2+3×1=9。请将这个矩阵乘手工计算一下,规则不复杂。
      请编程序,实现两个矩阵的乘法。
    参考解答

    展开全文
  • python打印输出数组中的所有元素

    千次阅读 2019-08-02 22:35:08
    因此,需要在程序中控制台中打印数组的全部元素,如果数组的容量较小,例如 只含有10个元素,采用print命令或print函数可以答应出数组中的每个元素; 如果数组的容量过大,只能打印出数组的部分元素,打印结果只...

    转载于 https://www.jb51.net/article/136355.htm

    学习Python的人都知道数组是最常用的的数据类型,为了保证程序的正确性,需要调试程序。

    因此,需要在程序中控制台中打印数组的全部元素,如果数组的容量较小,例如 只含有10个元素,采用print命令或print函数可以答应出数组中的每个元素;

    如果数组的容量过大,只能打印出数组的部分元素,打印结果只包含开始部分元素和结尾部分元素,中间元素省略。省略的部分不利于程序的调试;

    因此,为了方便调试程序,需要将数组中的元素全部打印出来。

    1. 少量元素情况

    #打印数组中的元素
    import numpy as np
    a = np.array(6)
    print a

    程序结果为:

    [0 1 2 3 4 5]

    1. 大量元素情况

    可以采用 set_printoptions(threshold=‘nan’)
    ?
    1
    2
    3
    4

    import numpy as np
    np.set_printoptions(threshold=<span style=“font-size: 12px; font-family: Consolas, “Courier New”, Courier, mono, serif; white-space: normal; word-spacing: 0px; text-transform: none; float: none; font-weight: 400; color: rgb(0,0,0); font-style: normal; text-align: left; orphans: 2; widows: 2; display: inline !important; letter-spacing: normal; background-color: rgb(255,255,255); text-indent: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial”>np.NaN)
    print np.arange(100)
    print np.arange(100).reshape(10, 10)

    结果为:

    [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
    25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
    50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
    75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]
    [[ 0 1 2 3 4 5 6 7 8 9]
    [10 11 12 13 14 15 16 17 18 19]
    [20 21 22 23 24 25 26 27 28 29]
    [30 31 32 33 34 35 36 37 38 39]
    [40 41 42 43 44 45 46 47 48 49]
    [50 51 52 53 54 55 56 57 58 59]
    [60 61 62 63 64 65 66 67 68 69]
    [70 71 72 73 74 75 76 77 78 79]
    [80 81 82 83 84 85 86 87 88 89]
    [90 91 92 93 94 95 96 97 98 99]]

    当array里面的存放的数据维度过大时,在控制台会出现不能将array完全输出的情况,中间部分的结果会用省略号打印出来。这时就需要用到numpy里面的set_printoptions()方法

    我们来看一下 set_printoptions 方法的简单说明

    set_printoptions(precision=None,
    threshold=None,
    edgeitems=None,
    linewidth=None,
    suppress=None,
    nanstr=None,
    infstr=None,
    formatter=None)

    precision:输出结果保留精度的位数

    threshold:array数量的个数在小于threshold的时候不会被折叠

    edgeitems:在array已经被折叠后,开头和结尾都会显示edgeitems个数

    formatter:这个很有意思,像python3里面str.format(),就是可以对你的输出进行自定义的格式化

    举例:

    precision:

    np.set_printoptions(precision=4)
    print(np.array([1.23456789]))

    [ 1.2346] # 最后进位了

    threshold:

    np.set_printoptions(threshold=10)
    print(np.arange(1, 11, 1)) # np.arange(1, 11, 1)生成出来是[1-10],10个数

    [ 1 2 3 4 5 6 7 8 9 10]
    np.set_printoptions(threshold=9)
    print(np.arange(1, 11, 1))

    [ 1 2 3 …, 8 9 10]

    edgeitems:

    np.set_printoptions(threshold=5)
    print(np.arange(1, 11, 1))

    [ 1 2 3 …, 8 9 10]
    np.set_printoptions(threshold=5, edgeitems=4)
    print(np.arange(1, 11, 1))

    [ 1 2 3 4 …, 7 8 9 10]

    formatter

    np.set_printoptions(formatter={‘all’: lambda x: 'int: ’ + str(-x)})
    print(np.arange(1, 5, 1))

    [int: -1 int: -2 int: -3 int: -4]

    这个formatter是一个可调用的字典,'all’是其中一个key,表示里面的x可以包含所有type,还有其他key,具体可以在源码里面查看最后如果只想在代码中的某一部分使用自定义的printoptions,那么可以通过再次调用np.set_printoptions()这个方法来进行reset

    展开全文
  • /* 2017年3月9日17:09:36 java基础50道经典练习题 例35 Athor: ZJY ... 最小的与最后一个元素交换,输出数组。 */ import java.util.Scanner; public class ProgramNo35_1 { public static void ma

    /*
    	2017年3月9日17:09:36
    	java基础50道经典练习题 例35
    	Athor: ZJY
    	Purpose:  
    	【程序35】
      题目:输入数组,最大的与第一个元素交换,
      最小的与最后一个元素交换,输出数组。
    
    */
    import java.util.Scanner;
    
    public class ProgramNo35_1
    {
    	public static void main(String[] args)
    	{
    		int[] array = new int[50];
    		System.out.print("请输入一串数组: ");
    		Scanner sc = new Scanner(System.in).useDelimiter("\\s");
    		int len = 0;
    		for (len=0; len<20; len++) {
    			if(sc.hasNextInt()) {
    				array[len] = sc.nextInt();
    			}else {
    				break;
    			}
    		}
    		sc.close();
    		
    		int maxIndex = 0;
    		int minIndex = 0;
    		int maxTemp = array[0];
    		int minTemp = array[0];
    		for (int j=0; j<len; j++) {
    			if(maxTemp < array[j]) {
    				maxTemp = array[j];
    				maxIndex = j;
    			}
    			if(minTemp > array[j]) {
    				minTemp = array[j];
    				minIndex = j;
    			}
    		}
    		array[maxIndex] = array[0];
    		array[minIndex] = array[len-1];
    		array[0] = maxTemp;
    		array[len-1] = minTemp;
    		
    		int[] array1 = new int[len];
    		for(int i=0; i<len; i++)
    			array1[i] = array[i];
    		print(array1);
    		
    	}
    	//打印
    	private static void print(int[] array) {
    		for (int i=0; i<array.length; i++) {
    			System.out.print(array[i]+" ");
    		}
    		System.out.println();
    	}
    }
    
    /*
    	2017年3月10日09:59:11
    	java基础50道经典练习题 例35
    	Athor: ZJY
    	Purpose:  程序有误
    */
    
    import java.util.Scanner;
    public class ProgramNo35_2
    {
    	public static void main(String[] args){
    		System.out.print("请输入一组数:");
    		Scanner scan = new Scanner(System.in).useDelimiter("\\s");
    		int[] a = new int[50];
    		int m = 0;
    		while(scan.hasNextInt()){
    			a[m++] = scan.nextInt();
    		}
    		scan.close();
    		int[] b = new int[m];
    		for(int i=0; i<m; i++)
    		  b[i] = a[i];
    		for(int i=0; i<b.length; i++)
    			for(int j=0; j<b.length-i-1; j++)
    				if(b[j] < b[j+1]){
    					int temp = b[j];
    					b[j] = b[j+1];
    					b[j+1] = temp;
    				}
    		for(int i=0; i<b.length; i++)
    		  System.out.print(b[i]+" ");
    
    	}
    }
    
    


    展开全文
  • 浅谈关于用结构体函数输入输出数组元素 在实际生活中,当处理一类或多类事物的时候,我们常常构造结构体函数来进行具体事物的整理,下面以处理学生信息为例,看一看使用结构体函数的时候需要注意的事项。 以下面这...
  • 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 package demo40; import java.util.Scanner; /** * 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 * @...
  • S是一个存放在数组中,长为n的字符串,试编写一个程序S按下述要求改造后输出:将S的所有偶数位上的字符按照其原来的下标从大到小的次序放在S的后半部分,将S的所有奇数位上的字符按照其原来的下标从小到大的次序...
  • 总结下c语言中字符串数组的地址存放问题 #include &lt;iostream&gt; using namespace std; #include&lt;bits/stdc++.h&gt; int main() { char *s; printf("s的地址是:%d\n", &...
  • c++程序设计 遍历对象数组

    千次阅读 2020-01-30 20:17:30
    编写主函数,利用 std::array 创建包含10个对象的Circle数组并初始化。 用基于范围的for循环遍历Circle数组,求10个Circie对象的面积之和(10分) 题目内容: 类Circle有两个构造函数。无参构造函数没有函数体,...
  • 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 代码:import java.util.*; public class lianxi35 { public static void main(String[] args) { int N = 8; int[] a = new int ...
  • 快速排序的思想,把数组分割成大于和小于某值的两部分后,判断每部分的元素个数,然后递归分割,等等。 下面这个代码是基于快排的思想: using System; namespace test01 { class Program { st
  • 返回:贺老师课程教学链接1、编写一函数,由实参传来一个字符串,统计此字符串中...请将下面程序补充完整。#include #include #include void fltj(char str[], int a[]) { int ll,i; ll=___(1)____ for (i=0; i; i
  • 题目:输入一个月份,输出对应的英文名称,要求用指针数组表示12个月的英文名称。试编写相应程序。 输入输出示例: 5 May #include <stdio.h> #include <stdlib.h> char *getmonth(int n); int ...
  • 一个数组,如果元素均为指针类型数据,则为指针数组; int *p[4]与int *(p[4])等价 每一个数组元素都相当于一个指针变量,均可以指向一个整型元素; 区分:int (*p)[4]:指向一维数组的指针变量; #include<stdio...
  • 编写一个程序,将字符数组s2中的全部字符复制到s1中。不使用strcpy函数,要求复制时吧'\0'也要复制过去,‘\0’后面字符不复制 下面给出程序: #include #include int main() { char s1[100]="abcde"; char s2...
  • C编译程序数组名存放数组在内存中的首地址。 指针访问内存比变量名访问速度更快,数组采用指针加减1的方式访问数组,增加了访问内存的灵活性。 指针与一维数组 指针移动方式访问数组元素: int a[5], *p; /...
  • ****定义一个抽象类一水 果,其中包括getWeightQ方法,编写程序分别创建苹果、桃子、橘子3个类,创建若干水果对象存放在-一个水果类型的数组中,输出数组中所有水果的类型、重量。提示:利用对象的getClass0.getName0...
  • 设计程序对数组中的数据实现一次删除及插入操作: 利用getchar()函数接收键盘输入: ● 当输入字符’D’时,接收键盘输入一个数组中存在的整数n,并对数组中存在的该整数进行删除,要求删除后的数组各元素仍按照从小...
  • public class Test { public static void main(String[] args) { String arr[] = new String[]{"a","b","c"};//定义一个字符串数组arr for(int i=0;i ...//循环输出字符串数组元素 } String s
  • 在采用字符串方式后,字符数组的输入输出将变得简单方便。除了上述用字符串赋初值的办法外,还可用scanf函数和printf函数一次性输入输出一个字符数组中的字符串,而不必使用循环语句逐个输入输出每个字符。要输出一...
  • 建立一个类SUM,求二维数组外围各元素的和,并且输出数组各元素及所求之和。具体要求如下: (1)私有数据成员 int a[4][4]:二维数组,存放要处理的数据。 int s:存放数组a外围各元素的和。 (2)公有成员函数...
  • 例题:请补充fun函数,该函数的功能是数组a中的奇数元素按原来的先后顺序放在原数组后面。 例如,输入 “5,7,2,42,35,32,28,37,68,13”,则输出 “2,42,32,28,68,5,7,35,37,13”。 请勿改动主函数main与其它函数中...
  • 数组

    千次阅读 多人点赞 2021-01-24 20:56:41
    首先必须声明数组变量,才能在程序中使用数组下面是声明数组的语法: dataType[] array;//首选方法 或 dataType array[]; Java通过new操作符来创建数组,语法如下: dataType[] array=new dataType[arraySize]...
  • 数组的输入输出

    千次阅读 2018-05-13 10:33:29
    问题C:复杂类型作函数参数之数组...编写程序,通过函数给数组输入若干不小于0的整数,用负数作为输入结束标志,通过另一函数输出数组中的数据。 #include <stdio.h> #define M 100 / * M表示元素个数不超...
  • Java编程之利用数组输出唐诗

    千次阅读 2019-03-11 17:02:18
    问题描述:利用Java编程实现利用数组输出唐诗。 程序源码: public class ArrayTest { public static void main(String[] args){ char[][] arr=new char[4][7]; String s="朝辞白帝彩云间千里江陵一日...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 372,727
精华内容 149,090
关键字:

下面程序的功能是输出数组s