精华内容
下载资源
问答
  • C语言编程排序:输入一个正整数n,再输入n个整数,用选择法对这n个整数按从小到大的顺序排序后输出。 例如: 输入:9 8 7 6 5 4 3 输出:3 4 5 6 7 8 9 选择排序的思想:选出最小的一个数与当前序列中的第一个数交换...

    C语言编程排序:输入一个正整数n,再输入n个整数,用选择法对这n个整数按从小到大的顺序排序后输出。
    例如:
    输入:9 8 7 6 5 4 3
    输出:3 4 5 6 7 8 9
    选择排序的思想:选出最小的一个数与当前序列中的第一个数交换,再在余下的数字中选出最小的和第二个交换。
    其中会有两层循环:
    第一层循环:
    一次遍历序列中的每一个元素;
    第二层循环:
    将第一层循环得到的当前元素依次与剩下的元素进行比较,符合条件的则进行交换。
    代码如下:

    #include<stdio.h>
    
    int main()
    {
    	int i=0;
    	int j=0;
    	int tmp,n;
    	int arr[20];
    	printf("请输入您要排序的整数个数n(n<20): \n");
    	scanf("%d",&n);
    	printf("arr[%d]: ",n);
    	for(i=0;i<n;i++)
    	{
    		scanf("%d",&arr[i]);
    	}
    	for(i=0;i<n-1;i++)
    		{
    			for(j=i+1;j<n;j++)
    			{
    				if(arr[j]<arr[i])
    				{
    					tmp=arr[i];
    					arr[i]=arr[j];
    					arr[j]=tmp;
    				}
    			}
    		}
    	printf("排序后的%d个整数:\narr[%d]: ",n,n);
    	for(i=0;i<n;i++)
    	{
    		printf("%d ",arr[i]);
    	}
    	printf("\n");
    	return 0;
    }
    
    

    运行结果如下:
    在这里插入图片描述

    菜菜的代码,希望能够帮助到你哟!

    展开全文
  • 供初学者练习和参考使用,代码直接可以运行,这里我就不贴出结果截图了,可以自己运行看看。...int average(int a[],int n) { int i,sum=0; float ave; for(i=0;i<n;i++) sum=sum+a[i]; ave=sum/n; printf...

    供初学者练习和参考使用,代码直接可以运行,这里我就不贴出结果截图了,可以自己运行看看。

    1.用函数调用求一组数的平均数(用数组)

    #include <stdio.h>
    int average(int a[],int n)
    {
    	int i,sum=0;
    	float ave;
    	for(i=0;i<n;i++)
    	sum=sum+a[i];
    	ave=sum/n;
    	printf("average=%f",ave);
    	return ave;
    }
    int main()
    {
    	int a[10]={2,4,6,8,10,12,13,48,52,65};
    	average(a,10);
    	return 0;
    }
    
    

    2.用冒泡排序将10个整数按从大到小排列

    #include <stdio.h>
    int main()
    {
    	int a[10];
    	int i,j,t;
    	printf("请输入10个整数:");
    	for(i=0;i<10;i++)
    	scanf("%d",&a[i]); 
    	for(i=0;i<9;i++)
    	{
    		for(j=0;j<9-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;
    } 
     
    
    

    3.在一个数组中插入一个数按从小到大排列

    #include <stdio.h>
    int main()
    {
    	int a[11];
    	int i,j,t,x,v;
    	printf("请输入10个整数:\n");
    	for(i=0;i<10;i++)
    	scanf("%d",&a[i]); 
    	for(i=0;i<9;i++)
    	{
    		for(j=0;j<9-i;j++)
    		{
    			if(a[j]>a[j+1])
    			{
    				t=a[j];
    				a[j]=a[j+1];
    				a[j+1]=t;
    			}
    		}
    	 } 
    	 printf("请输入一个整数:\n");
    	 scanf("%d",&x);
    	 for(i=0;i<10;i++)
    	 {
    	 	if(x>a[i]&&x<a[i+1])
    	 	{
    	 		v=i;
    	 		break;
    		 }
    	 	else;
    	  } 
    	  for(i=10;i>v;i--)
    	  a[i]=a[i-1];
    	  a[v+1]=x;
    	  
    	 for(i=0;i<11;i++)
    	 printf("%d ",a[i]);
    	 return 0;
    } 
     
    
    

    4.二维数组求每门课程的平均分最高分学生的平均分

    #include <stdio.h>
    int main()
    {
    	int a[3][4]={{77,68,86,73},{96,87,89,78},{70,90,86,81}};
    	int i,j,sum,max,sumx;
    	for(j=0;j<4;j++)
    	{
    		sum=0;
    		for(i=0;i<3;i++)
    		{
    			sum=sum+a[i][j];	
    		}
    		printf("课程%d的平均分:%d\n",j+1,sum/3);
    		max=a[i][j];
    		for(i=1;i<3;i++)
    		{
    			if(max<a[i][j])
    			{
    				max=a[i][j];	
    			}
    		}
    		printf("课程%d的最高成绩:%d\n",j+1,max);
    	}
    	for(i=0;i<3;i++)
    	{
    		sumx=0;
    		for(j=0;j<4;j++)
    		{
    			sumx=sumx+a[i][j];
    		}
    		printf("学生%d的平均分:%d\n",i+1,sumx/4);
    	}
    	return 0;
    }
    
    

    5.将字符数组s2中的全部字符复制到字符数组s1中

    #include <stdio.h>
    int main()
    {
    	char a1[40];
    	char a2[10];
    	printf("请输入第一行字符串:\n");
    	gets(a1);
    	printf("请输入第二行字符串:\n");
    	gets(a2);
    	int i,j,t;
    	for(i=0;a1[i]!='\0';i++)
    	t=i;
    	for(j=0;a2[j]!='\0';j++)
    	a1[t+j+1]=a2[j];
    	a1[t+j+2]='\0';
    	puts(a1);
    	return 0;
    }
    
    

    6.中午吃啥饭呢?

    #include<stdio.h>
    int main()
    {
    	int xuhao;
    	printf("====中午吃啥饭呢?======\n");
    	printf("1、法式蘑菇鸡肉饭\n");
    	printf("2、匈牙利风味炖牛肉饭\n");
    	printf("3、老北京鸡肉卷\n");
    	printf("4、干烧凤尾鲜虾饭\n");
    	printf("请输入您的选择:");
    	scanf("%d",&xuhao);
    	switch (xuhao)
    	{
    		case 1:printf("不错的选择\n");break;
    		case 2:printf("不错的选择\n");break;
    		case 3:printf("不错的选择\n");break;
    		case 4:printf("不错的选择\n");break;
    		default:printf("输入错误!");
    	 } 
    	 return 0;
     } 
    
    

    7.中午吃啥饭呢?(升级版)

    #include<stdio.h>
    int main()
    {
    	int i,j;
    	printf("====中午吃啥饭呢?======\n");
    	printf("1、法式蘑菇鸡肉饭\n");
    	printf("2、匈牙利风味炖牛肉饭\n");
    	printf("3、老北京鸡肉卷\n");
    	printf("4、干烧凤尾鲜虾饭\n");
    	printf("5、退出\n");
    	printf("请输入您的选择:");
        while(1)
    	{
    		scanf("%d",&i);
    		if(i<=4)
            {
            	printf("不错的选择\n");
                printf("请输入您的选择:");
    		}
    		else if(i==5)
    		break;
    		else
    		{
    			printf("输入错误!\n");
    		    printf("请输入您的选择:");
    		    continue;
    		}
    			
    	}
    	return 0;
     } 
    
    

    8.从键盘输入20个整数,输出它们的和

    #include <stdio.h>
    int main()
    {
       int a,sum=0;
       for (int i=1;i<=20;i++)     
       {
         scanf("%d",&a);   
         sum=sum+a;                
       }
       printf("sum=%d\n",sum);
       return 0;      
    }
    
    
    
    展开全文
  • 将n行字符串按照字符串长度从小到大排序,并输出排序后的结果。 输入格式: 用户先输入一个整数n,然后回车键。 接下来输入n个字符串,每个字符串结束时回车键。 注意:用户输入的一行字符信息中,可能含有空格和...

    题目: 定义一个char a[100][101]的二维字符数组,存储用户输入的n行m列个字符。其中n由用户输入确定,1<=n<=100;而m不需要用户输入,1<=m<=100,也就是一行最多只有100个有效字符。将n行字符串按照字符串长度从小到大排序,并输出排序后的结果。

    输入格式:
    用户先输入一个整数n,然后按回车键。 接下来输入n个字符串,每个字符串结束时按回车键。 注意:用户输入的一行字符信息中,可能含有空格和标点符号。

    输出格式:
    按照每行字符串长度升序排列后的输出结果,每行打印一个字符串。题目确保没有两行的长度完全相同。

    输入样例:
    用户输入数字5并回车后,输入五个字符串。

    5
    aaa
    b
    ccccc
    dd
    eeeeeee
    

    输出样例:
    按照输入的五个字符串的长度,从短到长输出。

    b
    dd
    aaa
    ccccc
    eeeeeee
    

    参考了林同学的代码以后稍作修改的标准答案代码:

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	getchar();
    	
    	char a[100][101];
    	int len[n][2];
    	
    	int i,j,t;
    	for(i=0;i<n;i++)
    	{
    		gets(a[i]);
    		len[i][0]=strlen(a[i]);
    		len[i][1]=i;
    	}
    	
    	for(i=0;i<n-1;i++)
    	{
    		for(j=0;j<n-i-1;j++)
    		{
    			if(len[j][0]>len[j+1][0])
    			{
    				t=len[j][0];
    				len[j][0]=len[j+1][0];
    				len[j+1][0]=t;
    				
    				t=len[j][1];
    				len[j][1]=len[j+1][1];
    				len[j+1][1]=t;				
    			}
    		}
    	}
    	for(i=0;i<n;i++)
    	{
    		puts(a[len[i][1]]);
    	}
    }
    
    
    展开全文
  • C语言—冒泡排序

    千次阅读 2020-11-30 19:48:17
    从键盘输入的10个整数按从小到大的顺序排序后输出 #include<stdio.h> void main() { int n[10] = { 25,35,68,79,21,13,98,7,16,62 };//定义一个大小为10的数组 int i, j, temp; for (i = 1; i <= 9; i+...

    C语言排序算法-冒泡排序

    从键盘输入的10个整数按从小到大的顺序排序后输出

    #include<stdio.h>	
    void main()
    {
    	int n[10] = { 25,35,68,79,21,13,98,7,16,62 };//定义一个大小为10的数组
    	int i, j, temp;
    	for (i = 1; i <= 9; i++)//外层循环是比较的轮数,数组内有10个数,那么就应该比较10-1=9轮
    	{
    		for (j = 0; j <= 9 - i; j++)//内层循环比较的是当前一轮的比较次数,例如:第一轮比较9-1=8次,第二轮比较9-2=7次
    		{
    			if (n[j] > n[j + 1])//相邻两个数如果逆序,则交换位置
    			{
    				temp = n[j];
    				n[j] = n[j + 1];
    				n[j + 1] = temp;
    			}
    		}
    	}
    	printf("排序过后的数顺序:\n");
    	for (i = 0; i < 10; i++)
    	printf("%-4d", n[i]);
    	printf("\n");
    }
    

    运行的结果如下:
    在这里插入图片描述

    为了更加清晰,准确的理解冒泡排序的过程,现在修改上面的程序,每次排序之后都会进行一次输出。

    #include<stdio.h>	
    void main()
    {
    	int n[10] = { 25,35,68,79,21,13,98,7,16,62 };//定义一个大小为10的数组
    	int i, j,k,temp;
    	for (i = 1; i <= 9; i++)//外层循环是比较的轮数,数组内有10个数,那么就应该比较10-1=9轮
    	{
    		for (j = 0; j <= 9 - i; j++)//内层循环比较的是当前一轮的比较次数,例如:第一轮比较9-1=8次,第二轮比较9-2=7次
    		{
    			if (n[j] > n[j + 1])//相邻两个数如果逆序,则交换位置
    			{
    				temp = n[j];
    				n[j] = n[j + 1];
    				n[j + 1] = temp;
    			}
    		}
    		printf("第%d趟排序完成后的数据排序:\n",i);
    		for (k = 0;k < 10; k++)
    			printf("%-4d", n[i]);
    		printf("\n");
    	}
    	printf("排序过后的数顺序:\n");
    	for (i = 0; i < 10; i++)
    		printf("%-4d", n[i]);
    	printf("\n");
    }
    

    运行结果如下:
    第三方图片第三方算法描述
    其实很好理解的,就是for循环的嵌套,尤其是理解每一层循环的意思,初学者多研究一下,我在代码区也注释了每一层循环的意思,想要举一反三,就需要下去大量的练习

    展开全文
  • N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素...
  • N个学生的数据,将学生数据成绩从低到高排序,如果成绩相同则姓名字符的字典序由小到大排序,如果姓名的字典序也相同则按照学生的年龄从小到大排序,并输出N个学生排序后的信息。 输入描述: 测试数据有多组...
  • 按从小到大输出n个数x[1],x[2],...,x[n],每行1个,使得任意2个数之和恰是输入的n(n-1)/2个数. Sample Input 15 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 6 7 8 9 10 11 12 13 14 15 16 17 7 8 9 10 11 12 13...
  • 快速排序C语言

    2020-04-29 23:21:51
    请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在1~109范围内),表示整个数列。 输出格式 输出共一行...
  • /* 题目1196:成绩排序 题目描述: 用一维数组存储学号和成绩,然后...如果学生的成绩相同,则按照学号的大小进行从小到大排序。 样例输入: 3 1 90 2 87 3 92 样例输出: 2 87 1 90 3 92 来源: */ #include <stdio
  •  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式  输出一行,按从小到大的顺序输出排序后的数列。 样例输入 5 8 3 6 4 9 样例输出 3 4 6 8 9 ##解题思路:在这题,鉴于本人对冒泡排序法...
  • 冒泡排序法 题目描述:  用一维数组存储学号和... 如果学生的成绩相同,则按照学号的大小进行从小到大排序。 样例输入:  3  1 90  2 87  3 92 样例输出:  2 87  1 90  3 92 代码:   #include <stdio>
  • 冒泡法排序c语言

    万次阅读 2017-12-17 16:24:02
    N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素...
  •  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式  输出一行,按从小到大的顺序输出排序后的数列。 样例输入 5 8 3 6 4 9 样例输出 3 4 6 8 9 代码如下附上: #incl...
  • N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。 通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个...
  •  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式  输出一行,按从小到大的顺序输出排序后的数列。 样例输入 5 8 3 6 4 9 样例输出 3 4 6 8 9 思路 假设i是外层循环,j为内层循环 i从...
  •  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式  输出一行,按从小到大的顺序输出排序后的数列。 样例输入 5 8 3 6 4 9 样例输出 3 4 6 8 9 #include<stdio.h>...
  • [PTA C语言]冒泡法排序

    2020-12-05 09:28:39
    N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素...
  • 我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。 输入格式: 输入在第1行中给出N和K(1≤K<N≤100)...
  • 我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。 输入格式: 输入在第1行中给出N和K(1≤K<N≤100),此后N行,...
  •  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式  输出一行,按从小到大的顺序输出排序后的数列。 样例输入 5 8 3 6 4 9 样例输出 3 4 6 8 9 #include <stdio.h> int main() {
  •  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式  输出一行,按从小到大的顺序输出排序后的数列。 样例输入 58 3 6 4 9 样例输出 3 4 6 8 9 #include&...
  • 我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。 输入格式: 输入在第1行中给出N和K(1≤K<N≤100),此后N...
  • 7-9冒泡法排序C语言版)

    万次阅读 多人点赞 2018-10-16 00:17:43
    N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素...
  •  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式  输出一行,按从小到大的顺序输出排序后的数列。 样例输入 5 8 3 6 4 9 样例输出 3 4 6 8 9 这道题就是简单的排序问题啦~ 用蛮力法搞定...
  • 7-27 冒泡法排序 (20 分)将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用...
  • 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在1~109范围内),表示整个数列。 输出格式 输出共一行...
  • c语言

    2020-02-17 12:01:51
    /* 2020.2.17 ... 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式  输出一行,按从小到大的顺序输出排序后的数列。 */ #include <stdio.h> int main(void) { int n, ...
  • 注意:这里所说的“第M大数”是指从小到大的第M大,具体参见Sample Input 输入数据第一行有一数字T,代表有T组数据。 每组数字由两整数N和M组成。 [Technical Specification] 1 3<=N 1 ...
  • 输入n个字符串(每个字符串长度不超过100个字符),按从小到达排序输出。 输入描述 第一行输入一个正整数n,下面n行输入n个字符串。 输出描述 按字符串从小到大输出n行(n个字符串) 样例输入 4 C ...

空空如也

空空如也

1 2 3 4
收藏数 70
精华内容 28
关键字:

c语言输入n个整数按从小到大排序

c语言 订阅