C语言实例(八)翻转字符串_删除特殊字符串_最大值_最小值_循环交换三个数

57.使用递归来翻转字符串

(1)代码

#if 1
#include <stdio.h> 
#include <windows.h>
//声明
void reverseSentence(); 

void reverseSentence() 
{ 
	char c; 
	scanf("%c", &c); 
	//字符串的结束标志为'\n'
	if( c != '\n') 
	{ 
		reverseSentence();
		printf("%c",c); 
	} 
}

int main() 
{ 
	printf("输入一个字符串: "); 
	reverseSentence(); 
	system("pause");
	return 0; 
}
#endif

(2)运行结果

在这里插入图片描述

58.使用引用循环替换数值

a、b、c 三个变量,通过引用按顺序循环替换他们的值。

(1)代码

#if 1
#include<stdio.h>
#include <windows.h>
//声明
void cyclicSwap(int *a,int *b,int *c);
//定义
void cyclicSwap(int *a,int *b,int *c)
{
	int temp;
 
    // 交换 b-temp;a-b;c-a;temp-c(逆时针转)
	temp = *b;
    *b = *a;
    *a = *c;
    *c = temp;
}
int main()
{
	int a, b, c;
 
    printf("输入 a, b 和 c 的值: ");
    scanf("%d %d %d",&a,&b,&c);
 
    printf("交换前:\n");
    printf("a = %d \nb = %d \nc = %d\n",a,b,c);
 
    cyclicSwap(&a, &b, &c);
 
    printf("交换后:\n");
    printf("a = %d \nb = %d \nc = %d",a, b, c);
	system("pause");
    return 0;
}
#endif

(2)运行结果

在这里插入图片描述

59.删除字符串中的除字母外的特殊字符。

(1)代码

#if 1
#include<stdio.h>
#include <windows.h>
int main()
{
	char line[150];
	int i, j;
	printf("输入一个字符串: ");
	fgets(line, (sizeof line / sizeof line[0]), stdin);
	//遍历数组
	for(i = 0; line[i] != '\0'; ++i)
	{
		while (!( (line[i] >= 'a' && line[i] <= 'z') || (line[i] >= 'A' && line[i] <= 'Z') || line[i] == '\0') )
		{
			for(j = i; line[j] != '\0'; ++j)
			{
				//依次将数据赋值
				line[j] = line[j+1];
			}
			line[j] = '\0';
		}
	}
	printf("输出: ");
	puts(line);
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

60.通过用户输入指定的数值,来判断最大值。

(1)代码

#if 1
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
	int i, num;
	float *data;
 
	printf("输入元素个数(1 ~ 100): ");
	scanf("%d", &num);

	// 为 'num' 元素分配内存
	data = (float*) calloc(num, sizeof(float));
 
	if(data == NULL)
	{
		printf("Error!!! 内存没有分配。");
		exit(0);
	}
	printf("\n");
 
	// 用户输入
	for(i = 0; i < num; ++i)
	{
		printf("输入数字 %d: ", i + 1);
		scanf("%f", data + i);
	}
	// 循环找出最大值
	for(i = 1; i < num; ++i)
	{
		if(*data < *(data + i))
			*data = *(data + i);
	}
	printf("最大元素 = %.2f\n", *data);
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

61.通过用户输入指定的数值,来判断最小值。

(1)代码

#if 1
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
	int i, num;
	float *data;
 
	printf("输入元素个数(1 ~ 100): ");
	scanf("%d", &num);

	// 为 'num' 元素分配内存
	//分配num个长度为sizeof(float)的连续空间
	//函数返回一个指向分配起始地址的指针。
	//calloc函数会自动将内存初始化为0
	data = (float*) calloc(num, sizeof(float));
 
	if(data == NULL)
	{
		printf("Error!!! 内存没有分配。");
		exit(0);
	}
	printf("\n");
 
	//用户输入num个数据
	for(i = 0; i < num; ++i)
	{
		//屏幕上显示输出第几个数,总共num个数
		printf("输入数字 %d: ", i + 1);
		//输入数据
		scanf("%f", data + i);
	}
	// 循环找出最大值
	for(i = 1; i < num; ++i)
	{
		if(*data > *(data + i))
			*data = *(data + i);
	}
	printf("最小元素 = %.2f\n", *data);
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

二级标题

(1)代码

(2)运行结果

二级标题

(1)代码

(2)运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值