1002 c与c++的区别啊

来源:互联网 发布:淘宝店铺的公告在哪里 编辑:程序博客网 时间:2024/06/08 18:05

先看c  再看c++ 感觉怪怪的

#include<stdio.h>#include<string.h>int number=0;void ad(char a[],char b[]);int main(){int n;scanf("%d",&n);while(n--){char a[1002],b[1002];scanf("%s %s",a,b);ad(a,b);if(n!=0) putchar(10);}return 0;}void ad(char a[],char b[]){int j[1002],k[1002],add[1002],adds[1002],head=0;int al=strlen(a),bl=strlen(b);for(int i=al-1;i>=0;i--) j[i]=a[i]-48;for(int i=bl-1;i>=0;i--) k[i]=b[i]-48;int m,n,o=0,in=0,jinr=0,jinl=0;for(m=al-1,n=bl-1;m>=0&&n>=0;m--,n--,o++){jinr=jinl;if(jinr==0) in=j[m]+k[n];else in=j[m]+k[n]+1;if(in>=10){if(m==0&&n==0) head=1;in=in-10;jinl=1;}elsejinl=0;add[o]=in;if(head==1) add[++o]=1;}if((m<0)&&n>=0)for(;n>=0;n--) {jinr=jinl;if(jinr==0){add[o++]=k[n];jinl=0;}else{k[n]=k[n]+1;if(k[n]>=10){if(n==0) head=1;k[n]=k[n]-10;add[o++]=k[n];jinl=1;}elseadd[o++]=k[n]+1;}if(head==1) add[o++]=1;}else if(m>=0&&n<0)for(;m>=0;m--){jinr=jinl;if(jinr==0){add[o++]=j[m];jinl=0;}else{j[m]=j[m]+1;if(j[m]>=10){if(m==0) head=1;j[m]=j[m]-10;add[o++]=j[m];jinl=1;}elseadd[o++]=j[m]+1;}if(head==1) add[o++]=1;}for(m=0,o--;o>=0;o--,m++) adds[m]=add[o]; printf("Case %d:\n",++number);printf("%s + %s = ",a,b);for(int kk=0,flat=0;kk<m;kk++){if(flat==0&&adds[kk]==0);else flat=1;if(flat==1)printf("%d",adds[kk]);if(flat==0&&kk==m-1)printf("%d",adds[kk]);}putchar(10);}

c++方便了一倍

#include<iostream>#include<string>using namespace std;string add(string s1,string s2){ string max=s2,min=s1; if(s1.length()>s2.length()) {  max=s1;  min=s2; } int a=max.length()-1,b=min.length()-1; for(int i=b;i>=0;i--) {  max[a--]+=min[i]-'0'; } for(int j=max.length()-1;j>0;j--) {  if(max[j]>'9')  {   max[j]=max[j]-10;   max[j-1]+=1;  } } if(max[0]>'9') {  max[0]-=10;  max='1'+max; } return max;}int  main(){ int n,i; cin>>n; for(i=1;i<=n;i++) {  string s1,s2;  cin>>s1>>s2;  cout<<"Case "<<i<<":"<<endl;  cout<<s1<<" + "<<s2<<" = "<<add(s1,s2)<<endl;  if(i!=n)      cout<<endl; }}

所以

今后最好少用c吧(大一勿看)

0 0
原创粉丝点击