PTA指针:利用指针找最大值 和 指针(3)7-2 统计字符串中空格数

2023-12-23 06:25:45

利用指针找最大值:本题要求实现一个简单函数,找出两个数中的最大值。

函数接口定义:

void findmax( int *px, int *py, int *pmax );

其中pxpy是用户传入的两个整数的指针。函数findmax应找出两个指针所指向的整数中的最大值,存放在pmax指向的位置。

裁判测试程序样例:

#include <stdio.h>
void findmax(int* px, int* py, int* pmax);
int main()
{
	int max, x, y;
	scanf("%d %d", &x, &y);
	findmax(&x, &y, &max);
	printf("%d\n", max);

	return 0;
}
/*你的代码要写在这里*/

输入样例:

3 5

输出样例:

5

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB


解题代码

void findmax(int* px, int* py, int* pmax) {

	((*px) > (*py)) ? (*pmax = *px) : (*pmax = *py);
}

解题思路

要注意条件判断时字符的优先级?

写成下面这样就会编译错误(其实是PTA比较魔性的称呼,我感觉这并不叫编译错误,而是答案错误,代码也能跑)

*px > *py ? *pmax = *px : *pmax = *py;

注意,我们是使用了条件运算符(三元运算符)

但是,条件运算符的优先级较低,因此它会被解释为不是我们想要的东西。


统计字符串中空格数:输入一个字符串,统计其空格的数量。

输入一个字符串,统计其空格的数量。
要求编写函数

int count_sp(const char *s);

统计并返回字符串 s 中空格的数量。

输入格式:

在一行中输入一个长度不超过 80 的字符串,其中可能含有多个空格。

输出格式:

输出共 2 行:第一行打印输入的原字符串,第二行是该字符串中空格的数量。

输入样例:

在这里给出一组输入。例如:

Hello world

输出样例:

在这里给出相应的输出。例如:

Hello world
1

程序样例


#include<stdio.h>
#define STRLEN 80

// 返回字符串 s 中空格的数量
int count_sp(const char* s);

int main(void)
{
	char s[STRLEN + 1];
	// 输入字符串
	gets(s);
	// 输出字符串及其空格数
	printf("%s\n%d\n", s, count_sp(s));
	return 0;
}

/***  在此实现 count_sp 函数 ***/

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB


解题代码

按照题目,完美无缺,但PTA无故显示超时的代码(我认为这是PTA自身的BUG,下面有应对方式,但我觉得应该看一下这个正确的思路,再去复制下面很简单的代码)

#include<stdio.h>
#define STRLEN 80
// 返回字符串 s 中空格的数量
int count_sp(const char* s);
int main(void)
{
	char s[STRLEN + 1];
	// 输入字符串
	gets(s);
	// 输出字符串及其空格数
	printf("%s\n%d\n", s, count_sp(s));
	return 0;
}
int count_sp(const char* s) {
	char* p = s;
	int count = 0;
	while (*p != '/0') {
		if (*p == ' ')
			count++;
		p++;
	}
	return count;
}

解决代码:(PTA可以显示答案正确)↓↓↓

#include<stdio.h>
#include<string.h>
#define STRLEN 80
// 返回字符串 s 中空格的数量
int main(void)
{
	char s[STRLEN + 1];
	// 输入字符串
	gets(s);
	int n=strlen(s);
    int count=0;
    for(int i=0;i<n;i++){
        if(s[i]==' ')
            count++;
    }
	printf("%s\n%d\n", s, count);
	return 0;
}

面对网站上判别代码的故障,我们应该勇敢地说,这次是我对了。

文章来源:https://blog.csdn.net/etamaos/article/details/135162804
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。