C语言编程题,结构体与共用体的应用
发布网友
发布时间:2024-10-22 00:20
我来回答
共2个回答
热心网友
时间:2024-11-17 23:24
#include <stdio.h>
#define N 10
void input(int *);//输入
void sort(int *);//排序
int search(int *,int x);//查找
void insert(int *,int x);//插入
void display(int *,int n);//显示
void main(void)
{
int temp;
int x;
int a[11];
printf("输入10个成绩:");
input(a);
sort(a);
printf("输出成绩(大-->小):");
display(a,N);
printf("输入一个成绩:");
scanf ("%d",&x);//输入一个成绩
temp = search(a,x);
if(temp == 0)//如果没有找到
{
printf("没有匹配的数,插入后的排序:");
insert(a,x);
display(a,N+1);
}
getchar();
}
void input(int *p)
{
int i;
for(i=0;i<N;i++)
scanf ("%d,",&p[i]);
}
void sort(int *p)
{
int i,j,temp;
//冒泡法,小的放后面
for(i=N-1;i>0;i--)
{
for (j=i-1;j>=0;j--)
{
if (p[j] < p[i])
{
temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}
}
}
int search(int *p,int x)
{
int i;
for(i=0;i<N;i++)
{
if(x==p[i])
{
printf("有匹配的数,位置为:");
printf("%d\n",i);
return 1;
}
}
return 0;
}
void insert(int *p,int x)
{
int i,j;
for(i=0;i<N;i++)
{
if(x>p[i])
{
for(j=N-1;j>i;j--)
{
p[j+1]=p[j];
}
break;
}
}
p[j]=x;
}
void display(int *p,int n)
{
int i;
for(i=0;i<n;i++)
printf("%d,",p[i]);
printf("\n");
}
热心网友
时间:2024-11-17 23:25
用冒泡法等排序方法就可以解决了,这种例题网上有的是。