请问以下程序有什么问题
#include <iostream>
using namespace std;
void fun(int str1[], int a);
int main()
{
int str[101];
for(int i=0;i<=101;)
{
str[i] = i-1;
}
int n;
cin >> n;
fun(str, n);
return 0;
}
void fun(int str1[101], int a)
{
if(a<0)
{
return;
}
else
{
cout << str1[a];
return fun(str[101], --a);
}
}
main函数中的for循环i没有自增,跳不出来
#include <iostream>
using namespace std;
void fun(int str1[], int a);
int main()
{
int str[101];
// for(int i=0;i<=101;) //数组越界 + 死循环
for(int i=0;i<101;i++)
{
if(i == 101)
{
int a = 0;
}
str[i] = i-1;
}
int n;
cin >> n;
fun(str, n);
return 0;
}
void fun(int str1[101], int a)
{
if(a<0)
{
return;
}
else
{
cout << str1[a];
// return fun(str[101], --a);
return fun(str1, --a); //问题2
}
}
#if 1
#include
using namespace std;
void fun(int str1[], int a);
int main()
{
int str[10];
//少了i++,导致死循环
//for (int i = 0; i <= 101;)
//for (int i = 0; i <= 10; ++i)
for (int i = 0; i < 10; ++i)
{
str[i] = i;
}
int n;
cin >> n;
fun(str, n);
return 0;
}
void fun(int str1[101], int a)
{
if (a<=0)
{
return;
}
else
{
//cout << str1[a];
cout << str1[a - 1];
//return fun(str[101], --a);
return fun(str1, --a);
}
}
#endif
我把数组元素个数改小了,但是不会影响结果...