你的问题是什么
因为cheer()函数的print()语句里,使用格式字符串%d打印参数i的值,所以输出了"cheer 2",如果不需要打印i的值,把格式字符串%d以及后面的i去掉即可。
修改如下:
参考链接:
#include <stdio.h>
void cheer(int i){
// https://www.runoob.com/cprogramming/c-function-printf.html
// https://blog.csdn.net/MyLinChi/article/details/53116760
// 如果不需要打印参数i的值,去掉printf()语句里的格式字符串%d以及后面的i即可
printf("cheer\n");
}
int main(void){
cheer(2.4);
return 0;
}
【以下回答由 GPT 生成】
根据给出的代码,问题出现的原因是因为在函数cheer中,参数i的类型是int,而在函数main中调用cheer函数时传递的实参是2.4,这是一个浮点数。根据C语言的隐式类型转换规则,在将浮点数传递给int类型参数时,会将浮点数进行截断,只保留整数部分。因此,传递给cheer函数的实参将被截断成2,而不是期望的2.4。
修改代码如下:
#include<stdio.h>
void cheer(double i) {
printf("cheer%.1f\n", i);
}
int main() {
cheer(2.4);
return 0;
}
通过将cheer函数中的参数类型改为double,可以接收浮点数类型的参数。在printf语句中使用%.1f的格式化字符串,可以保留一位小数并输出。这样修改后,最终输出的结果将是"cheer2.4",而不会包含单纯的英文字母cheer。
是英文cheer