作业2024/1/20

1.定义一个"简单宏"或宏函数,实现两个数交换

#include 
#define JH(x,y) ({ int t=x;x=y;y=t;printf("a=%d b=%d",x,y);})
int main(int argc, const char *argv[])
{
	int a;
	int b;
	printf("please enter num1:");
	scanf("%d",&a);
	printf("please enter num:");
	scanf("%d",&b);
	JH(a,b);
	
	return 0;
}
ubunt

2.定义字符类型指针,指针指向n个连续堆区内存,输入,计算字符串长度

定义函数,实现内存申请

定义函数,计算字符串长度

定义函数释放内存

#include 
#include 
char* p(int n,char* a); //内存申请
int cd(int n,char* a);//字符串长度计算
void f(char *b);//内存释放
int main(int argc, const char *argv[])
{
	int n;
	printf("请输入申请的字节长度n:");
	scanf("%d",&n);
	char a[n];
	printf("请输入字符串:");
	scanf("%s",a);
	char*c=p(n,a);
	cd(n,a);
	f(c);
	return 0;
}
char* p(int n,char* a) //内存申请
{
	char* b=(char*)malloc(sizeof(a));
	printf("内存申请成功,指向的首地址为%p\n",b);
	return b;
}
int cd(int n,char* a)//字符串长度计算
{ 
	int i=0;
	for(i=0;a[i]!='\0';i++);
		printf("字符串长度i=%d\n",i);
		return 0;
}
void f(char *c)//内存释放
{
	free(c);
	printf("内存释放\n");
	c=NULL;
}

 

 作业2024/1/20_第1张图片

你可能感兴趣的:(算法)