#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;
}
共 2 条回复
我觉得有了这个六年级的同学们就轻松多了
有bug还请指出