1002 c与c++的区别啊

本文对比了C++和C语言的区别,并详细分析了两种语言在使用过程中的优势与不足,提供了关于何时选择C++或C的实用建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看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;
		}
		else
		jinl=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;
			}
			else
			add[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;
			}
			else
			add[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吧(大一勿看)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值