//ex1
#include <math.h>
#include <stdio.h>
void solve(double a, double b, double c)
{
double x1, x2;
double delta, real, imag;
if(a == 0)
printf("not quadratic equation.\n");
else
delta = b*b - 4*a*c;
if(delta >= 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("x1 = %f, x2 = %f\n", x1, x2);
}
else
{
real = -b/(2*a);
imag = sqrt(-delta) / (2*a);
printf("x1 = %f + %fi, x2 = %f - %fi\n", real, imag, real, imag);
}
}
//不能将根设置为函数返回值,函数只能返回一个值(除了指针函数)
int main()
{
double a, b, c;
printf("Enter a, b, c: ");
while(scanf("%lf%lf%lf", &a, &b, &c) != EOF)
{
solve(a, b, c);
printf("Enter a, b, c: ");
}
return 0;
}
//ex2.1
#include <stdio.h>
long long fac(int n)
{
static long long p = 1; //static使函数被调用完后里面变量的值不被释放
p = p*n;
return p;
}
int main() {
int i,n;
printf("Enter n: ");
scanf("%d", &n);
for(i=1; i<=n; ++i)
printf("%d! = %lld\n", i, fac(i));
return 0;
}
//ex2.2
#include <stdio.h>
long fac(int n)
{
static long p=1;
printf("p = %ld\n", p);
p = p*n;
return p;
}
int main()
{
int i,n;
printf("Enter n: ");
scanf("%d", &n);
for(i=1; i<=n; ++i)
printf("%d! = %ld\n", i, fac(i));
return 0;
}
//ex3
#include <stdio.h>
#define N 1000
int fun(int n,int m,int bb[N])
{
int i,j,k=0,flag;
for(j=n;j<=m;j++)
{
flag=1;
for(i=2;i<j;i++)
{
if(j%i==0)
{
flag=0;
break;
}
}
if(flag)
bb[k++]=j;
}
return k;
}
int main(){
int n=0,m=0,i,k,bb[N];
scanf("%d",&n);
scanf("%d",&m);
for(i=0;i<m-n;i++)
bb[i]=0;
k=fun(n,m,bb);
for(i=0;i<k;i++)
printf("%4d",bb[i]);
printf("\n");
return 0;
}
//ex4
#include <stdio.h>
long fun(int n); // 函数声明
int main() {
int n;
long f;
while(scanf("%d", &n) != EOF) {
f = fun(n); // 函数调用
printf("n = %d, f = %ld\n", n, f);
}
return 0;
}
// 函数定义
// 补足。。。
long fun(int n)
{
if (n==1)
return 1;
else
return 2*fun(n-1)+1;
}
//ex5
#include <stdio.h>
void draw(int n, char symbol); // 函数声明
#include <stdio.h>
int main()
{
int n, symbol;
while(scanf("%d %c", &n, &symbol) != EOF) {
draw(n, symbol); // 函数调用
printf("\n");
}
return 0;
}
// 函数定义
// 补足代码。。。
void draw(int n, char symbol)
{
int i,j,k;
for (i=0;i<n;i++)
{
for (j=0;j<n-i-1;j++)
printf(" ");
for (k=0;k<2*i+1;k++)
printf("%c",symbol);
printf("\n");
}
}