#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
}