#include<stdio.h>
int main()
{
double d[] = { 0,1,2,3,4,5,6,7, };
int i = 0;
while (i < 8)
{
printf("%d", d[i]);
i++;
}
return 0;
}
为什么执行出来全是00000000
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
檀越@新空间 2024-03-08 19:08关注小杨2-2 晚上好🌙🌙🌙
本答案参考ChatGPT-3.5在你的代码中,你尝试以整数(
%d)的形式打印double类型数组的元素。由于类型不匹配,这种行为是未定义的,通常会导致输出不可预期的结果,如你所见的全零。问题原因: 对于
double类型的数据使用了%d格式说明符进行输出。解决方案:
- 应该使用
%f或%g来打印double类型的数值。 - 如果你确实需要整数形式的输出,可以先将
double转换为int再进行打印。
修正后的代码:
#include<stdio.h> int main() { double d[] = { 0,1,2,3,4,5,6,7 }; int i = 0; while (i < 8) { printf("%.0f", d[i]); // 使用%f并限制小数点后无数字,效果等同于输出整数部分 // 或者如果你想强制转换为整数并打印: // printf("%d", (int)d[i]); i++; } return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用- 应该使用