博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

实验4

Posted on 2020-12-06 17:36  蜗牛吃蛋挞  阅读(79)  评论(2编辑  收藏  举报

实验一

//一元两次方程求解
//重复执行,直到按下ctrl+z结束
#include <stdio.h>
#include<math.h>
void solve(double a,double b,double c);
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;
}
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+%fl,x2=%f-%fl\n",real,imag,real,imag);
		}
	} 
}

  

可以,可以返回x1,x2的值,然后在主函数中输出。

实验二

#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可以使定义的函数值在下次使用时,因第一次运行而发生数值变化。

实验三

//寻找两个整数之间的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。
// 例如,输入6和21,则输出为:7 11 13 17 19。

#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++) {
            
        for(i=2;i<j;i++)
			if(j%i==0) {  
	       	flag=0;
	       	break;
		}
		if(i>=j) 
	       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);  // 函数调用 
		printf("n = %d, f = %lld\n", n, f);
	}
	
	return 0;
}

long long fun(int n){
	long long k;
	if(n>0)
	k=2*fun(n-1)+1;
	else 
	return 0;
	return k;
	
} 

  

实验五

 1 #include <stdio.h>
 2 
 3 void draw(int n, char symbol);  // 函数声明 
 4 
 5 #include <stdio.h> 
 6 int main() {
 7     int n, symbol;
 8     
 9     while(scanf("%d %c", &n, &symbol) != EOF) {
10         draw(n, symbol);  // 函数调用 
11         
12         printf("\n");
13     }
14     
15     return 0;
16 } 
17 
18 
19 void draw(int n,char symbol){
20     int k,line;
21     for(line=0;line<=n;line++){
22         for(k=0;k<n-line+1;k++)
23         printf(" ");
24         for(k=0;k<2*line-1;k++)
25             printf("%c",symbol);
26         printf("\n");
27         
28     }
29 }