原题大意是这样的:
有N个大小不等的自然数(1--N),请将它们由小到大排序。
要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。
(请你做做看,时间20分钟)
#include <stdio.h>
#include <conio.h>
print_ok(int a[],int num)
{
int i;
for(i=0;i<num;i++)
{
printf("%d",a[i]);
}
printf("/n");
}
int main()
{
int i,t;
int num=5;
int a[]={3,4,1,2,0};
print_ok(a,num);
for(i=0;i<num;i++)
{
while(a[i]!=i)
{
t=a[a[i]];
a[a[i]]=a[i];
a[i]=t;
print_ok(a,num);
}
}
print_ok(a,num);
}
#include <stdio.h>
#include <conio.h>
#include <string.h>
void aad(int a)
{
int i;
if(a!=0)
{
aad(--a);
for(i=1;i<a;i++)
{
printf("%d",a);
}
printf("/n");
}
}
int main()
{
int a=4;
aad(a);
return 0;
}
#include <stdio.h>
#include <conio.h>
struct student
{
char name[20];
int age;
};
int main()
{
int i;
struct student he[3]=
{{"abcd",19},{"efgh",20},{"ijkl",21}};
for(i=0;i<3;++i)
{
printf("%c",++he[i].name[3]);
printf("%d/n",--he[i].age);
}
}
#include <stdio.h>
#include <conio.h>
int main()
{
int a[3][4]={1,2,3,4,5,6};
printf("%d/n,%d/n,%d/n,%d/n",*a,++a,*((a+0)+0),&a[0][0]);
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char strcmp1(char *a,char *b)
{
while(*a==*b)
{
a++;b++;
if(*a=='/0')return '=';
}
if((*a-*b)>0)
return '>';
else return '<';
}
int main()
{
char *a,*b;
char b1='b';
char c;
a="ab";b=&b1;
c=strcmp1(a,b);
//printf("%d/n",a-b1);
printf("%c/n",c);
}