一段特别诡异的C语言代码 求大神告知

224 2023-12-04 07:51

一、一段特别诡异的C语言代码 求大神告知

你发的这段程序,int flag放到你标记的两个位置都是一样的。但是我觉得应该放到下面的这个位置更合理:

#define A(X) ((t[X]-'0'))

int main()

{

int i,j,N,m;

char t[3];

// int flag=0;

scanf(%d,&m);

for(j=1;j<=m;j++)

{

int flag=0;//应该放到这里来!!!!

scanf(%d,&N);

printf(Case %d:\n,j);

for(i=100;i<1000;i++)

{

sprintf(t,%d,i);

if((A(0)+A(1))*2+A(2)==N)

{

printf(%c%c%c%c%c\n,t[0],t[1],t[2],t[1],t[0]);

flag++;

}

}

for(i=100;i<1000;i++)

{

sprintf(t,%d,i);

if((A(0)+A(1)+A(2))*2==N)

{

printf(%c%c%c%c%c%c\n,t[0],t[1],t[2],t[2],t[1],t[0]);

flag++;

}

}

if(flag==0)printf(-1\n);

}

}还可以优化为以下程序:

#define A(X) ((t[X]-'0'))

int main()

{

int i,j,N,m,flag;

char t[3];

scanf(%d,&m);

for(j=1;j<=m;j++)

{

printf(Case %d:\n,j);

flag=0;

scanf(%d,&N);

for(i=100;i<1000;i++)

{

sprintf(t,%d,i);

if((A(0)+A(1))*2+A(2)==N||(A(0)+A(1)+A(2))*2==N)

{

printf(%c%c%c,t[0],t[1],t[2]);

if((A(0)+A(1)+A(2))*2==N)printf(%c,t[2]);

printf(%c%c\n,t[1],t[0]);

flag++;

}

}

if(flag==0)printf(-1\n);

}

}

二、二级C语言的题,题目是求π的近似值,麻烦看一下,代码错在哪

这个错误的原因是由于你没有给d初始化的原因,在声明的时候直接初始化为eps就可以了

修改后代码如下,修改位置注释给出

#include #include double fun ( double eps) { double n,i,m,k,d=eps,s;//////////////////////////// for(s=1.0,n=1;d>=eps;n++) { //printf(执行到这里1); for(i=1.0,m=1.0,k=1;i<=n;i++) { m=m*i; k=k*(2*i+1); //printf(执行到这里2); //printf(%f,%f,m,k); } d=(double)m/k; s+=d; } return 2*s; } int main( ) { double x; printf(Input eps:) ; scanf(%lf,&x); printf(\neps = %lf, PI=%lf\n, x, fun(x)); return 0; }

三、十个数的冒泡排序的代码

int a[10]={1,2,3,4,5,6,7,8,9,10}

//从大到小的排序

for(int i=0; i<9; i++){

for(int j=0; j<10-i; j++){

if (a[ j ] < a[ j+1 ]){

int temp=a[ j+1 ];

a[ j+1 ]=a[ j ];

a[ j ]=temp;

}

}

}

四、用递推法 求斐波那契序列 第N个元素 希望得到 源代码 本人小白 考试需要

private static void Main(string[] args)

{

Console.WriteLine(求裴波那契数列的第n项值。);

Console.Write(请输入要求的项n:);

int num = int.Parse(Console.ReadLine());

for (int i = 1; i {

Console.Write({0}\t, fibonacci(i).ToString());

}

Console.ReadLine();

}

//递归求斐波那契额数列

private static int fibonacci(int n)

{

if (n == 1)

{

return 1;

}

if (n == 2)

{

return 1;

}

return (fibonacci(n - 1) + fibonacci(n - 2));

}

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片