1问题:对学生的整体结构体信息进行整体排序
#include<stdio.h>
#define n 3
int i,j,k,t;
void input(int *p)
{
for(i=0;i<n;i++)
{
printf("请输入第%d名学生的年龄:",i+1);
scanf("%d",(p+i));
}
printf("\n则原先3名学生的年龄为:\n");
for(i=0;i<n;i++)
{
printf("%d\t",*(p+i));
}
}
void paixu(int *p)
{
int *a,*b;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
a=(p+i);
b=(p+j);
if(*(p+i)>*(p+j)) k=j;
}
if(k!=i)
{
t=*a;
*a=*b;
*b=t;
}
}
}
void output(int *p)
{
printf("\n则后来3名学生的年龄按照升序排序为:\n");
for(i=0;i<n;i++)
{
printf("%d\t",*(p+i));
}
}
int main()
{
int arr[3],*p=arr;
input(p);
paixu(p);
output(p);
return 0;
}
2#include<stdio.h>
#include<string.h>
#define n 3
int i,j,t,m;
void input(char brr[n][20])
{
for(i=0;i<n;i++)
{
printf("请输入第%d名学生的姓名:",i+1);
gets(brr[i]);
printf("\n");
}
}
void swap(char brr[n][20])
{
char s[200];
int k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(strcmp(brr[i],brr[j])>0) k=j;
}
if(k!=i)
{
strcpy(s,brr[i]);
strcpy(brr[i],brr[j]);
strcpy(brr[j],s);
}
}
}
void output(char brr[n][20])
{
printf("按照升序为:");
for(i=0;i<n+1;i++)
{
printf("%s\t",brr[i]);
}
}
int main()
{
char arr[n][20],(*p)[20];
p=arr;
input(p);
swap(p);
output(p);
return 0;
}
3#include<stdio.h>
#define n 2
int i,j;
void input(double arr[])
{
for(i=0;i<n;i++)
{
printf("请输入第%d名学生的成绩:",i+1);
scanf("%lf",&arr[i]);
}
}
void sort(double arr[])
{
int k;
double t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(arr[i]>arr[j]) k=j;
}
if(k!=i)
{
t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
}
void output(double arr[])
{
printf("按照升序输出为:");
for(i=0;i<n;i++)
{
printf("%f\t",arr[i]);
}
}
int main()
{
double arr[n],*p=arr;
input(p);
sort(p);
output(p);
}
4筛选法求素数