#include<stdio.h>
#include<stdlib.h>
int i=0;
int j=0;
int temp=0;
int *fun2(int n) //定义从堆区申请空间的函数,n表示申请空间的个数
{
int *p=(int *)malloc(sizeof(int)*n); //从堆区申请n个int类型大小的空间
return p;
}
void fun1(int *p,int n) //定义输入函数,p表示指向堆区空间的地址,n表示堆区空间元素的个数
{
for(i=0;i<n;i++)
{
scanf("%d",p+i); //循环输入元素
}
}
void fun(int *p) //定义冒泡排序函数
{
for(i=1;i<6;i++) //排序趟数从1开始
{
for(j=0;j<6-i;j++) //控制元素以及每趟的比较次数
{
if(*(p+j)>*(p+j+1)) //升序
{
temp=*(p+j); //交换三部曲
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
for(i=0;i<6;i++)
{
printf("%-2d",*(p+i));
}
printf("\n");
}
void fun3(int *p) //定义空间释放函数
{
if(NULL != p)
{
free(p);
p=NULL;
}
}
int main()
{
int *p=fun2(6); //调用申请空间函数
fun1(p,6); //调用输入函数
fun(p); //调用冒泡排序函数
fun3(p); //调用释放空间函数
return 0;
}
2.使用商品结构体定义一个商品变量,不用初始化,使用scanf将每个属性进行输入,输入后再将信息输出
#include<stdio.h>
struct Goods //声明一个商品结构体
{
char name[100]; //名称
char position[100]; //产地
int price; //价格
double weight; //重量
};
int main()
{
struct Goods drink={};
printf("请输入商品的名称:");
scanf("%s",drink.name);
printf("请输入商品的产地:");
scanf("%s",drink.position);
printf("请输入商品的价格:");
scanf("%d",&drink.price);
printf("请输入商品的重量:");
scanf("%lf",&drink.weight);
printf("\n");
printf("商品信息:%s %s %d %lf\n",drink.name,drink.position,drink.price,drink.weight);
return 0;
}