PTA指针:利用指针找最大值 和 指针(3)7-2 统计字符串中空格数
2023-12-23 06:25:45
利用指针找最大值:本题要求实现一个简单函数,找出两个数中的最大值。
函数接口定义:
void findmax( int *px, int *py, int *pmax );
其中px
和py
是用户传入的两个整数的指针。函数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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!