A[1][n]不就是A[N]吗,干嘛要这样定义?
给你写个去吃饭吧
算法的复杂度最坏为O(N),没有开辟任何额外的空间,普通变量的定义不算
搞错没有,我的不能运行,程序运行之后,你输入10个数据,用空格隔开,然后回车就行了,难道还要我把数据也全部写在程序中才行.
#include
#define SIZE 10
void sort(int a[],int n)
{
int i,len,temp;
len=n-1;
for(i=0;i
if(a[i]&0x01==0) //判断是否为偶数
{
temp=a[len];
a[len]=a[i];
a[i]=temp;
len--;
}
else
i++;
}
}
int main()
{
int a[SIZE]={0},i;
for(i=0;i
sort(a,SIZE);
for(i=0;i
printf("\n");
return 0;
}
#include
int main() {
int a[10] = {3,2,1,4,6,9,8,5,12,11};
int temp;
int index = 0;
while(a[index]%2 ==0 && index<10) { //确定数组中第一个奇数的下标
index++;
}
for(int i=index+1;i<10;i++) {
if(a[i]%2 == 0) { //确定偶数的位置后与奇数换位置
temp = a[i];
a[i] = a[index];
a[index] = temp;
while(a[index]%2 ==0 && index <10) { //同时应该要找到下一个奇数的下标
index++;
}
}
}
for(int i=0;i<10;i++) { //打印输出
printf("%d\t",a[i]);
}
}
我是PcrazyC的小号,你把分给他,谢谢合作,我更改次数好像过多了,不能改了,郁闷
不好意思,好像是没有改变,我在处理判断偶数的时候没有考虑到优先级的问题,所以出错了,现在的没问题了,你自己可以看看
算法:
从第一个数开始,如果是偶数,与最后一个数交换,同时将最后一个数排除出去,不用处理了;如果是奇数的话,就继续下一次循环....这样进行下去,直到这个数是应该处理的数的最后一个为止
#include
#define SIZE 10
void sort(int a[],int n)
{
int i,len,temp;
len=n-1;
for(i=0;i
if((a[i]&0x01)==0) //判断是否为偶数
{
temp=a[len];
a[len]=a[i];
a[i]=temp;
len--;
}
else
i++;
}
}
int main()
{
int a[SIZE]={0},i;
for(i=0;i
sort(a,SIZE);
for(i=0;i
printf("\n");
return 0;
}
#include
void move(int a[], int n)
{
int i=0,j=n-1;
while(i
if(i
a[i] = a[i]+a[j];
a[j] = a[i]-a[j];
a[i] = a[i]-a[j];
}
}
}
void main()
{
int a[3][11] = {{0},{23,34,12,45,34,56,767,545,345,4,547},{0}};
int i;
printf("Befroe moving: ");
for(i=0; i<11; ++i)
{
printf("%d ", a[1][i]);
}
move(a[1], 11);
printf("\n");
printf("After moving: ");
for(i=0; i<11; ++i)
{
printf("%d ", a[1][i]);
}
printf("\n");
}
int p =0;
int tem;
fro(int i=0;i
if( 。。。)//判断是否为偶数
{
if(i>p)
{
tem=a[i];
a[i]=a[p];
a[p]=tem;
}
p++;
}
}
要自己在改改