第四次实验

实验一:

//
#include<math.h>
#include<stdio.h>

void solve(double a,double b,double c);

int main(){
	double a,b,c;
	printf("Enter a,b,c:");
	while(scanf("%1f%1f%1f",&a,&b,&c)!=EOF){
		solve(a,b,c);
		printf("Enter a,b,c: ");
	}
	return 0;
} 

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);
		}
	}
}

  不能

实验二:

//
#include<stdio.h>
long long fac(int n);

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

long long fac(int n){
	static long long p=1;
	printf("p=%lld\n",p);
	p=p*n;
	return p;
}

 

//
#include<stdio.h>
int func(int ,int);

int main(){
	int k=4,m=1,p1,p2;
	
	p1=func(k,m);
	p2=func(k,m);
	printf("%d,%d\n",p1,p2);
	
	return 0;
}

int func(int a,int b){
	static int m=0,i=2;
	
	i+=m+1;
	m=i+a+b;
	
	return(m);
	
}

  

 static可让函数运行完后保留变量的值。

实验三:

 

#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==1)
		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]);
	return 0;
}

  

实验四:

 

#include<stdio.h>
long long fun(int n);

int main(){
	int n;
	long long f;
	
	while(scanf("%d",&n)!=EOF){
		f=fun(n)-1;
		printf("n=%d,f=%lld\n",n,f);
	}
	return 0;
} 

long long fun(int n){
	int i=2,x;
	static long long j=1;
	if(n==0){
	return 1;
}
	else{
		j=i*fun(n-1);
	    return j;
}
	
}

  

 实验五:

#include<stdio.h>
void draw(int n,char symbol);
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 line=1,x,y;
	while(line<=n){
		for(x=1;x<=n-line;x++)
		printf(" ");
		for(y=1;y<=2*line-1;y++)
		printf("%c",symbol);
		printf("\n");
		line++;
	}
}

  

实验结束后,编程经验+1

posted @ 2020-12-01 11:13  嗷骜  阅读(60)  评论(1)    收藏  举报