用冒泡法对一个数据进行排序
想知道为什么下面的代码输入会出问题?
#include
#include
#include
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main()
{
int a[10],b[10],i,t,k;
for(i=0;1<10;i++)
scanf("%d",&a[i]);
for(k=0;k<10;k++)
{
for(i=0;i<9-k;i++)
{
if (a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for(i=0;i<10;i++)
printf("%d",a[i]);
return 0;
}
你输入for循环这里里面的条件是1<10,会陷入死循环,下次注意一下,望采纳
输入代码没问题啊,你输入界面截图看看
#include <stdio.h>
double calc_pow(double x, int n);
int main()
{
double x;
int n;
scanf("%lf %d", &x, &n);
printf("%.0f\n", calc_pow(x, n));
return 0;
}
int i=1;
double calc_pow(double x, int n)
{
printf("%f %d\n", x, n);
//if(n==1) return x; //如果用这个判断的话,会少一个,如果n是0就不可以了
if (n == 0)
return 1;
if (n % 2 == 0)
{
//printf("%f %d\n", x, n);
return calc_pow(x * x, n / 2);
}
else
{
//printf("%f %d\n", x, n);
return calc_pow(x * x, n / 2) * x; //记住函数最终是返回当前函数的值,返回完之后会继续执行下面的语句,直到执行本次函数之后才会返回上层函数
}
}