2016江苏大学885 编程题

0fe331e248cfe86d27543fa3f50cd8e8449.jpg

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <math.h>
using namespace std;

void fun(int s[],FILE *fp){
	float a, b, c, diat, realpart, imagpart;
	a = s[0];
	b = s[1];
	c = s[2];
	diat = b*b-4*a*c;	// diat=0有两个相等实根,diat>0有两个不等实根,diat<0有两个共轭复根 
	if(fp == NULL){
		printf("cannot write this file\n");
		exit(0);
	}
	else{
		if(fabs(a)<=1e-6){	//a=0 
			if(fabs(b)<=0){		//b=0
				printf("%dx^2+%dx+%d=0 有任意解\n",s[0],s[1],s[2]);
				fprintf(fp,"%dx^2+%dx+%d=0 有任意解\n",s[0],s[1],s[2]);
			}else{		//b!=0
				printf("%dx^2+%dx+%d=0 的解为x=%f\n",s[0],s[1],s[2],-c/b);
				fprintf(fp,"%dx^2+%dx+%d=0 的解为x=%f\n",s[0],s[1],s[2],-c/b);
			}
		}else{	//a!=0 
			if(diat < 0){		//有两个共轭复根 
				realpart = -b/(2*a);
				imagpart = sqrt(-diat)/(2*a);
				printf("%dx^2+%dx+%d=0 x=%f + %fi\n",s[0],s[1],s[2],realpart,imagpart);
				printf("%dx^2+%dx+%d=0 x=%f - %fi\n",s[0],s[1],s[2],realpart,imagpart);
				fprintf(fp,"%dx^2+%dx+%d=0 x=%f + %fi\n",s[0],s[1],s[2],realpart,imagpart);
				fprintf(fp,"%dx^2+%dx+%d=0 x=%f - %fi\n",s[0],s[1],s[2],realpart,imagpart);
			}
			else if(diat <= 1e-6){	// diat=0有两个相等的实根 
				printf("%dx^2+%dx+%d=0 的解为x2=x1=%f\n",s[0],s[1],s[2],-b/(2*a));
				fprintf(fp,"%dx^2+%dx+%d=0 的解为x2=x1=%f\n",s[0],s[1],s[2],-b/(2*a));
			}
			else {// diat >0
				printf("%dx^2+%dx+%d=0 的解为x1=%f x2=%f\n",s[0],s[1],s[2],(-b+sqrt(diat))/(2*a),(-b-sqrt(diat))/(2*a));
				fprintf(fp,"%dx^2+%dx+%d=0 的解为x1=%f x2=%f\n",s[0],s[1],s[2],(-b+sqrt(diat))/(2*a),(-b-sqrt(diat))/(2*a));
			}
		}
	}
}

int main(){
	int a[3] = {0}, i = 0;
	char ch;
	FILE *fp,*wp;
	if((fp=fopen("Coefficient.txt","r")) == NULL){
		printf("connot open this file\n");
		exit(0);
	}
	if((wp=fopen("result.txt","w")) == NULL){
		printf("cannot write this file\n");
		exit(0);
	}
	else{
		while(!feof(fp)){
			ch = fgetc(fp);
			if(ch >= '0' && ch <= '9'){
				a[i] = a[i]*10 + ch- '0';				
			}
			else{				
				i++;
				if((i+1)%4 == 0){
					cout << a[0] << ' ' << a[1] << ' ' << a[2] << endl;
					fun(a,wp);	//可以把文件都写入,不出现覆盖情况,读一行写入一行 
					i = 0;
					a[0] = a[1] = a[2] = 0;
				}
			}			
		}
		fclose(wp);
		fclose(fp);	
	} 
	return 0;
}

bae6b423ee0cd0c5041f54ef60dd8157c99.jpg

 

eb09c1f201c193c65bd83a7fe17d805c89f.jpg

#include<stdio.h>
int main(){
	int Fun(int n,int k);
	int n,k;	
	printf("输入n和k(n>=k):\n");
	scanf("%d %d",&n,&k);
	if(k > 0 && k < n);
		printf("%d\n",Fun(n,k));
	return 0;
} 
int Fun(int n,int k){
	if(n==k||k==0)
		return 1;
	else
		return Fun(n-1,k-1)+Fun(n-1,k);	
}

 

转载于:https://my.oschina.net/timebear/blog/2987979

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值