帮我看下这个4行的程序哪错了.

来源:百度知道 编辑:UC知道 时间:2024/06/10 11:08:02
#include<iostream>
using namespace std;
double pow(double x,double y);
int main(){
int f[]={0,1,2,3,4},t=0;
for(int i=1;i<=4;i++){
t=t+f[i]*pow(10,i-1);
cout<<t<<" ";
}
}

按道理应该输出的是:1 21 321 4321吖.
为什么这个程序输出的是:1 21 320 4320;
第3个为什么变了. 我看了很久没发现程序哪错了
问题想出来了一点了
t=pow(10,3-1);
cout<<t<<" ";
这样输出的是100;
但是这样
for(int i=3;i<=3;i++){
t=pow(10,i-1);
cout<<t<<" ";
却是输出99..到底为什么?

应该是 数据类型double的问题,
全是int 不会这样
建议 用int类型自己定义pow函数

我这边输出的是你按道理输出的答案啊。唯一不同的是我加了头文件:

#include <cmath>,不加按道理应该不能运行的