步骤如下:
clc
clear all
s=[9 8 4 2 7 10 6 1 5 3]; %要排序的数列
Ls=length(s);
for i=1:Ls-1
for j=1:Ls-i
if s(j)>s(j+1)
t=s(j);
s(j)=s(j+1);
s(j+1)=t;
end
end
end
s %输出排序后结果
注意事项
1安装出错时,可换注册码继续安装,到同一目录;
2谨记安装路径不要有中文名称;
3成功安装完毕之后,如果遇到matlab启动后,窗口在打开一到两秒后就自动关闭了, 可按以下方法试试:假设你安装的目录为c:\MATLAB\(不过不建议安装到C盘,那样会影响系统速度!)
参考资料来源:百度百科:MATLAB
#include<stdioh>
#include<mathh>
void paixu(int a,int n);
int issushu(int a);
void main()
{
int b[5][5];
int i,j,k=0;
printf("请输入一个五行五列的二维整数数组:\n");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&b[i][j]);
//开始判断,并将素数存到一维数组中
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(issushu(b[i][j]))
a[k++]=b[i][j];
//开始排序
paixu(a,k);
//开始输出
printf("\n二维数组中是素数的有:\n");
for(i=0;i<k;i++)
printf("%d ",a[i]);
printf("\n");
}
//交换
void swap(int a,int b)
{
int t;
t=a;
a=b;
b=t;
}
//从小到大排序
void paixu(int a,int n)
{
int i,j;
for(i=1;i<n-1;i++)
for(j=0;j<n-i;j++)
{
if(a[j]>a[j+1])
swap(a+j,a+j+1);
}
}
//判断是否是素数,是,返回1,否则,返回0
int issushu(int a)
{
int i;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)
return 0;
return 1;
}
//程序我已经调试好了,不懂的可追问哦!
if(arr[i]>arr[i+1])
{
arr[i]=k;
arr[i]=arr[i+1];
arr[i+1]=k;
}
改为
if(arr[i]>arr[i+1])
{
k=arr[i];
arr[i]=arr[i+1];
arr[i+1]=k;
}
你的k初始为0,然后全都是0
#include <stdioh>
#include <stringh>
#define N 10
char str[N];
int main()
{
void sort(char []);
int i,len;
printf("input string:\n");
for( i=0;i<N-1;i++ ) //输入最多N-1个字符,遇回车结束,多余的数据忽略掉
{
str[i]=getchar();
if ( str[i]=='\n' )
break;
}
str[i]='\0';
len=i;
sort(str);
printf("string sorted:\n");
for (i=0;i<len;i++)
printf("%c",str[i]);
printf("\n");
return 0;
}
void sort(char str[])
{
int i,j,len;
char t;
for( len=0;str[len]!='\0';len++ ); //求串长度
for(j=1;j<len;j++)
for (i=0;i<len-1;i++)
if(str[i]>str[i+1])
{
t=str[i];
str[i]=str[i+1];
str[i+1]=t;
}
}
首先看看起泡法:所谓起泡法,就是将相邻的两个数作比较,如果第一个数比第二个数大,则进行交换,将小的调到前头,这样一趟比较下来,则小数上浮,最大的数沉到最底。可以推知,要对10个数进行排序,则需要进行9趟比较,才能使10个数按大小顺序排列。每一趟都要进行两个数之间的比较,在第一趟中,要比较9次,第二趟刚8次,依此类推,可以得知,如果有n个数,则要进行n-1趟比较,在第1趟比较中要进行n-1次两两比较,在第 j 趟比较中要进行 n-j 次两两比较。据此,列出代码如下:#include <stdioh>
int main()
{
int i,j,temp,a[11];
printf("enter data:\n");
for (i=1;i<=10;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
for (i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
for (j=1;j<=9;j++)
for (i=1;i<=9-j;i++)
{
if (a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
printf("\nthe sorted numbers:\n");
for (i=1;i<=10;i++)
printf("%5d",a[i]);
getch();
return 0;
}再来看看选择法:所谓选择法,就是将第一个数与余下的所有的数都进行比较,如果第一个数比其他数都小,则不进行交换,如果余下的数有一个以上比第一个数小,则将其中最大的一个与第一个数交换,这样一趟比较下来,第一个数就存放了最小的数。起泡法是最大数沉底,选择法是最小数坐头。据此,选择法代码如下:#include <stdioh>
int main()
{
int i,j,min,temp,a[11];
printf("enter data:\n");
for (i=1;i<=10;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
for (i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
for (i=1;i<=9;i++)
{
min=i;
for (j=i+1;j<=10;j++)
if (a[min]>a[j])
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf("\nthe sorted numbers:\n");
for (i=1;i<=10;i++)
printf("%5d",a[i]);
getch();
return 0;
}
以上就是关于急求帮助,matlab编写程序起泡法对10个数由小到大排序全部的内容,包括:急求帮助,matlab编写程序起泡法对10个数由小到大排序、C语言程序 找出一二维数组中的所有素数,形成一个一维数组,并使用起泡法把素数数组有小到大排序。、以下是我的c程序,用起泡法从小到大的排序数组,我用的是win-tc开发环境,输出结果全为0,是什么原因等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)