问题标题: 酷町堂:5566

0
0
已解决
张清岩
张清岩
资深守护
资深守护

#include<bits/stdc++.h>

#include<iostream>

#include<string>

#include<algorithm>

using namespace std;

int n,a[105];

char b[105];

int main(){

    cin>>n;

    for(int i=1;i<=n;i++) cin>>a[i];

    for(int i=1;i<=n-1;i++) cin>>b[i];

    for(int i=1;i<=n;i++) cout<<a[i]<<b[i];

    cout<<endl;

    for(int i=1;i<=n;i++){

        if(i!=n) cout<<"=";

        if(b[i]=='+'){

            a[i+1]=a[i]+a[i+1];

        }else if(b[i]=='-'){

            a[i+1]=a[i]-a[i+1];

        }

        for(int j=i+1;j<=n;j++){

            cout<<a[j]<<b[j];

        }

        cout<<endl;

    }

    return 0;

}

5566哪里错了?


0
已采纳
李牧晓
李牧晓
中级天翼
中级天翼

核心

if(b[i]=='+'){ sum=sum+a[i+1]; cout<<sum; for(int j=i+2;j<=n;j++){ cout<<b[j-1]<<a[j]; } } else if(b[i]=='-'){ sum=sum-a[i+1]; cout<<sum; for(int j=i+2;j<=n;j++){ cout<<b[j-1]<<a[j]; } }

0
袁瑞琳
袁瑞琳
中级守护
中级守护

这道题你得再定义x,y,x=1,y=2;

然后把for循环改成while循环

    if(b[1]=='-')s=a[x]-a[y];
	else if(b[1]=='+')s=a[x]+a[y];
	while(x<(n-1))
	{
		cout<<"=";
		if(b[x+1]=='-')
		{
			cout<<s;
			s-=a[y+1];
		}
		else if(b[x+1]=='+')
		{
			cout<<s;
			s+=a[y+1];
		}
		for(int i=y;i<n;i++)
		{
			cout<<b[i]<<a[i+1];
		}
		cout<<endl;
		x++,y++;
	}

 

袁瑞琳在2021-08-06 19:44:42追加了内容

还要再定义s

0
朱小川
朱小川
缔造者
缔造者

for(int i=1;i<n;i++){ cout<<a[i]<<b[i]; } cout<<a[n]; b[n]=' '; cout<<endl; for(int i=1;i<=n;i++){ if(i!=n) cout<<"="; if(b[1]=='+'){ a[1]=a[1]+a[2]; } else a[1]=a[1]-a[2]; for(int j=2;j<=n;j++){ a[j]=a[j+1]; } for(int k=1;k<n;k++){ b[k]=b[k+1]; } for(int l=1;l<=n-i;l++){ cout<<a[l]<<b[l]; } cout<<endl; }

核心

还有俩一维数组输入,你自己搞定

0
李奕歌
李奕歌
初级天翼
初级天翼

for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n-1;i++){ cin>>b[i]; cout<<a[i]<<b[i]; } cout<<a[n]<<endl; for(int i=1;i<=n-1;i++){ cout<<'='; if(b[i]=='+'){ cout<<a[i]+a[i+1]; a[i+1]=a[i]+a[i+1]; }else{ cout<<a[i]-a[i+1]; a[i+1]=a[i]-a[i+1]; } for(int j=i+2;j<=n;j++) cout<<b[j-1]<<a[j]; cout<<endl; }

核心

我要回答