写一个函数,对于字符串类型的数据,取其长度的一半;对于浮点数类型,取其值的二分之一。
因为C语言中不支持函数重载,所以使用scanf()
函数的返回值判断是否读取成功。需要注意的是,数字可以以%c
的读取,但字符不可以以%lf
格式读取,所以写判断时要判断标准。
加入头文件#include <string.h>
以使用字符串长度函数strlen()
。
#include <stdio.h>
#include <string.h>
void half_c(char *ch);/*处理字符串*/
void half_n(double n);/*处理数值*/
int main(void) {
char ch;
double m;
if(scanf("%lf",&m) == 0){
scanf("%s",&ch);
half_c(&ch);
}
else{
half_n(m);
}
return 0;
}
void half_n(double n){
n = n/2.0;
printf("%g",n);
}
void half_c(char *ch){
int x;
x = strlen(ch);
for (int i = 0; i < x/2; ++i) {
printf("%c",*(ch+i));
}
}
输入输出测试:
4.6
2.3
banana
ban