Mister-小方


私信TA

用户名:1104986125

访问量:245765

签 名:

如此英俊为哪般

等  级
排  名 4
经  验 36650
参赛次数 1
文章发表 68
年  龄 19
在职情况 学生
学  校 大连交通大学
专  业 车辆工程

  自我简介:

解题思路以及注意事项:

  1. 虽然本题有很多种解法,但小方发现这题用冒泡法更能有逼格,所以建议大家熟练运用这种方法。

  2. 一般用循环来输出数组里的内容,除了字符串可以不用循环来输出。

  3. 冒泡法就是将数存在数组里面像冒泡一样相互比较。

#include<stdio.h>
void list(int a[],int n);//简易冒泡法
int main()
{
    int a[3],i;
    for(i=0;i<3;i++)
    {
        scanf("%d",&a[i]);
    }
    list(a,3);
    for(i=0;i<3;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}
void list(int a[],int n)
{
    int i,j,trans;
    for(i=0;i<n;i++)                                   //冒泡法,我建议大家可以死记,理解后记起来跟容易
        for(j=0;j<n-1;j++)
        {
            if(a[j]>a[j+1])
            {
                trans=a[j];
                a[j]=a[j+1];
                a[j+1]=trans;
            }
        }
}

看看大家还有没有什么不懂的,请在下方评论区留言,小方会在看到的第一时间替你解疑

 

0.0分

2 人评分

  评论区

函数部分这样写更容易理解,以第一个循环变量为基准,用第二个循环变量遍历基准后的每个元素,有比基准小的元素会不断与基准交换值,直到找到最小的元素会成为最终代替基准那个元素。
#include<stdio.h>
void list(int a[],int n);
int main()
{
    int a[6],i;
    for(i=0;i<6;i++)
    {
        scanf("%d",&a[i]);
    }
    list(a,6);
    for(i=0;i<6;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}
void list(int a[],int n)
{
    int i,j,trans;
    for(i=0;i<n-1;i++)
    {             
        for(j=i+1;j<n;j++)
        {
            if(a[j]<a[i])
            {
                trans=a[i];
                a[i]=a[j];
                a[j]=trans;
            }
    	}
    }
}
2018-12-26 20:35:00
喜欢C++的大佬可以参考下哈。
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
	int a;  
	vector<int> vec; 
	for(int i=0;i<3; i++)
	{
		cin>>a;
		vec.push_back(a);
	}
	sort(vec.begin(),vec.end());
	for(int i=0; i<3; i++)
	{
		cout<<vec[i]<<" ";
	}
	return 0;
}
2018-12-21 23:39:39
为什么这个是错的?????
#include <stdio.h>
int main()
{
int a[3];
int i,n;
for(i=0;i<3;i++)
scanf("%d",&a[i]);
for(i=0;i<2;i++)
{
if(a[i]>a[i+1])
{
n=a[i];
a[i]=a[i+1];
a[i+1]=n;
}
}
for(i=0;i<3;i++)
printf("%d  ",a[i]);

return 0;
}
2018-12-15 10:10:35
#include <stdio.h>
int main()
{
	int a[3],i,j,c;
	for(i=0;i<3;i++)
	{
		scanf("%d",&a[i]);
	}
	for(j=0;j<3;j++)
	{
		for(i=0;i<3;i++)
		{
				if(a[i]>a[i+1])
		{
			c=a[i];
			a[i]=a[i+1];
			a[i+1]=c;
		}
		}
	}
	for(i=0;i<3;i++)
	{
		printf("%d ",a[i]);
	}
	return 0;
	
}
2018-11-25 15:23:48
#include<stdio.h>
int main()
{
	int a[3],i,j,t;
	for(i=0;i<3;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<3;i++)
	{
		for(j=0;j<3-i;j++)
		{
			if(a[j]>a[j+1])
			{
				t=a[j];
			    a[j]=a[j+1];
			    a[j+1]=t;
			}
		}
	}
	for(i=0;i<3;i++)
	{
		printf("%d ",a[i]);
	}
	printf("\n");
	return 0;
}
//我这个哪里错了啊?
2018-05-07 22:39:30
棒棒哒
2017-08-04 10:15:40
  • «
  • 1
  • »