C语言 定义一个5X10的二维字符数组,输入任意5个字符串, 输出其中最短的字符串?

Python022

C语言 定义一个5X10的二维字符数组,输入任意5个字符串, 输出其中最短的字符串?,第1张

#include <stdio.h>

#include <string.h>

int GetShortStr(const char (*PStr)[10])

{

int MinLen=0

for(int i=0i<5-1i++)

{

for(int j=i+1j<5j++)

{

if(strlen(PStr[MinLen])>strlen(PStr[j]))

{

MinLen=j

}

}

}

return MinLen

}

int main(void)

{

char Str[5][10]={0}

for(int i=0i<5i++)

{

scanf("%s",Str[i])

}

puts("")

puts(Str[GetShortStr(Str)])

return 0

}

#include"stdio.h"

void main()

{

int x,y,z

for(x=-100x<=100x++)

for(y=-100y<=100y++)

for(z=-100z<=100z++)

{

if(5*x+3*y+z==100)

printf("x=%d,y=%d,z=%d\n",x,y,z)

}

}

我这里设的x,y,z都在正负一百之间,否则答案有无数个......

明白了。是 5x^2 + 2x + 6 = 0 求方程的两个根。

使用公式直接做。不过公式我怎么记不住了呢。

看看网上的说法

---------------------

配方法:用配方法解方程ax^2+bx+c=0 (a≠0)

先将常数c移到方程右边:ax^2+bx=-c

将二次项系数化为1:x^2+b/ax=- c/a

方程两边分别加上一次项系数的一半的平方:x^2+b/ax+( b/2a)^2=- c/a+( b/2a)^2

方程左边成为一个完全平方式:(x+b/2a )2= -c/a﹢﹙b/2a﹚²

当b²-4ac≥0时,x+b/2a =±√﹙﹣c/a﹚﹢﹙b/2a﹚²

∴x=﹛﹣b±[√﹙b²﹣4ac﹚]﹜/2a(这就是求根公式)  

---------------------

#include <stdio.h>

#include <math.h>

int main()

{

double r0_real, r0_virt, r1_real, r1_virt

// 5x^2 + 2x + 6 = 0, a 5, b 2, c 6

// b^2 - 4ac <0所以应该是虚数哦。

r0_real = (-2 )/(2*5) // 因为b^2 - 4ac <0所以sqrt 里面求的是其反

r0_virt = sqrt(- 2 * 2 + 4 * 5 * 6)/(2*5)

r1_real = r0_real

r1_virt = -r0_virt

printf("Root1 = %.2f + %.2fi, root2 = %.2f - %.2fi\n", r0_real, r0_virt, r0_real, r0_virt)

return 0

}