写了我一个晚上

null him 2021-01-17 22:32:22 1
#include<iostream>
#include<cstdio>
#include<windows.h>
using namespace std;
long long int f1(long long int n,long long int c){
	if(n%c==0){
		return c;
	}
	else{
		return f1(c,n%c);
	}
}
long long int f(long long int x,long long int y){
	if(x>=y){
		for(int i=1;;i++){
			if(x*i%y==0){
				return x*i;
			}
		}
	}
	for(int i=1;;i++){
		if(y*i%x==0){
			return i*y;
		}
	}
}
struct fs{
	int fm,fz;
}x[1005];
int main(){
	printf("欢迎来到计算机,请选择你要的类型\n");
	printf("1.整数 2.分数\n");
	int qqq;
	cin>>qqq;
	if(qqq==1){
		while(1){
			printf("需要退出按1即可!!!,否则请随便按个数\n");
			int sss;
			scanf("%d",&sss);
			if(sss==1){
				return 0;
			}
			else{
				int n,a[1005];
				printf("接下来请你读入你需要处理的数据的个数\n");
				cin>>n;
				printf("接下来输入你需要处理的数据\n");
				for(int i=1;i<=n;i++){
					scanf("%d",&a[i]);
				}
				char d;
				printf("您想对它们进行:A.加法 B.乘法");
				cin>>d;
				if(d=='A'){
					long long int sum=0;
					for(int i=1;i<=n;i++){
						sum+=a[i];
					}
					cout<<sum<<endl;
					continue; 
				}
				else if(d=='B'){
					long long int ans=1;
					for(int i=1;i<=n;i++){
						ans*=a[i]; 
					}
					cout<<ans<<endl;
					continue;
				}
				else{
					printf("读入错误\n");
					continue; 
				}
			}
		}
	}
	else if(qqq==2){
		while(1){
			printf("输出1跳出\n");
			int hh;
			cin>>hh;
			if(hh==1){
				return 0;
			}
			else{
				printf("接下来请先读入你需要处理数据的个数\n");
				int s;
				cin>>s;
				printf("接下来输入格式是:p/q\n");
				for(int i=1;i<=s;i++){
					scanf("%d/%d",&x[i].fz,&x[i].fm);
				}
				printf("请选择你对他们的处理方式 A.相加 B.相乘\n");
				char q;
				cin>>q;
				if(q=='A'){
					int ans=1,sum=0;
					for(int i=1;i<=s;i++){
						ans=f(ans,x[i].fm);
					}
					for(int i=1;i<=s;i++){
						sum+=x[i].fz*ans/x[i].fm;
					}
					if(sum%ans==0){
						printf("%d",sum/ans);
					}
					else{
						printf("%d/%d",sum/f1(ans,sum),ans/f1(ans,sum));
					}
				}
				else if(q=='B'){
					int fzj=1,fmj=1;
					for(int i=1;i<=s;i++){
						fzj*=x[i].fz;
						fmj*=x[i].fm;
					}
					if(fzj%fmj==0){
						printf("%d\n",fzj/fmj);
					}
					else{
						printf("%d/%d\n",fzj/f1(fzj,fmj),fmj/f1(fzj,fmj));
					}
				}
			}
				
		}
		
	}
	else{
		while(1){
			printf("输入错误!!!\n");
			Sleep(500);
			printf("请按1跳出程序\n");
			int sssss;
			if(sssss==1){
				return 0;
			}
			else{
				continue;
			}
		}
	}
	return 0;
} 
{{ vote && vote.total.up }}

共 2 条回复

null him

我觉得有了这个六年级的同学们就轻松多了

null him

有bug还请指出