兩種方法解決口算練習(xí)題-創(chuàng)新互聯(lián)

文章目錄
  • 口算練習(xí)題
    • 題目描述
    • 輸入格式
    • 輸出格式
    • 樣例 #1
      • 樣例輸入 #1
      • 樣例輸出 #1
    • 提示
  • 題解:
  • 大佬的代碼:

創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)遼陽,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220口算練習(xí)題 題目描述

王老師正在教簡單算術(shù)運(yùn)算。細(xì)心的王老師收集了i道學(xué)生經(jīng)常做錯的口算題,并且想整理編寫成一份練習(xí)。 編排這些題目是一件繁瑣的事情,為此他想用計算機(jī)程序來提高工作效率。王老師希望盡量減少輸入的工作量,比如 5+8 \texttt{5+8} 5+8 的算式最好只要輸入 5 \texttt 5 5 和 8 \texttt 8 8,輸出的結(jié)果要盡量詳細(xì)以方便后期排版的使用,比如對于上述輸入進(jìn)行處理后輸出 5+8=13 \texttt{5+8=13} 5+8=13 以及該算式的總長度 6 6 6。王老師把這個光榮的任務(wù)交給你,請你幫他編程實(shí)現(xiàn)以上功能。

輸入格式

第一行為數(shù)值 i i i

接著的 i i i 行為需要輸入的算式,每行可能有三個數(shù)據(jù)或兩個數(shù)據(jù)。

若該行為三個數(shù)據(jù)則第一個數(shù)據(jù)表示運(yùn)算類型, a \texttt a a 表示加法運(yùn)算, b \texttt b b 表示減法運(yùn)算, c \texttt c c 表示乘法運(yùn)算,接著的兩個數(shù)據(jù)表示參加運(yùn)算的運(yùn)算數(shù)。

若該行為兩個數(shù)據(jù),則表示本題的運(yùn)算類型與上一題的運(yùn)算類型相同,而這兩個數(shù)據(jù)為運(yùn)算數(shù)。

輸出格式

輸出 2 × i 2\times i 2×i 行。對于每個輸入的算式,輸出完整的運(yùn)算式及結(jié)果,第二行輸出該運(yùn)算式的總長度

樣例 #1 樣例輸入 #1
4
a 64 46
275 125
c 11 99
b 46 64
樣例輸出 #1
64+46=110
9
275+125=400
11
11*99=1089
10
46-64=-18
9
提示

數(shù)據(jù)規(guī)模與約定

對于 50 % 50\% 50% 的數(shù)據(jù),輸入的算式都有三個數(shù)據(jù),第一個算式一定有三個數(shù)據(jù)。

對于所有數(shù)據(jù), 0 < i ≤ 50 0


題解:

我將分為四部分求解:

  1. change函數(shù):主要是數(shù)字轉(zhuǎn)化為字符;
void change(int sum){
   int t=0,flag=0;
   if(sum<0){
   flag=1;
   sum=-sum;
   }
   while(sum/10!=0){
   	d[t]=sum%10+'0';
   	sum/=10;
   	t++;
   }
   d[t]=sum+'0';
   t++;
   if(flag){
   	d[t]='-';
   	t++;
   	d[t]='\0';
   }
   else {
   	d[t]='\0';
   }
}
  1. exchange函數(shù):將字符轉(zhuǎn)化為整數(shù);
void exchange(char *b){
	int k=0;
	b1=0;
	for(int i=strlen(b)-1;i>=0;i--){
		b1+=(b[i]-'0')*pow(10,k);
		k++;
	}
}
  1. compute函數(shù):計算并輸出;
void compute(char *b,char *c,char mark){
	exchange(b);
	int k=b1;
	exchange(c);
	int k1=b1;
	int sum=0;
	if(mark=='a'){
		sum=k+k1;
	}
	else if(mark=='b'){
		sum=k-k1;
	}
	else {
		sum=k*k1;
	}
	change(sum);
	cout<=0;i--){
		printf("%c",d[i]);
	}
	printf("\n");
	cout<
  1. main函數(shù),式子的輸入;
int main(){
	int n;
	cin>>n;
	int t=n;
	char mark;
	while(t--){
	cin>>a;
	if(a[0]<'0'||a[0]>'9'){
		mark=a[0];
		cin>>b;
		cin>>c;
	compute(b,c,mark);	
	}
	else{
		cin>>b;
		compute(a,b,mark);
	}
a[0]='\0';
b[0]='\0';
c[0]='\0';
d[0]='\0';	
}
return 0;
}
#include#include#includeusing namespace std;
char a[100],b[100],c[100],d[100],mark1[4]={"+-*"};
int b1=0;
void change(int sum){int t=0,flag=0;
	if(sum<0){flag=1;
	sum=-sum;
	}
	while(sum/10!=0){d[t]=sum%10+'0';
		sum/=10;
		t++;
	}
	d[t]=sum+'0';
	t++;
	if(flag){d[t]='-';
		t++;
		d[t]='\0';
	}
	else {d[t]='\0';
	}
}
void exchange(char *b){int k=0;
	b1=0;
	for(int i=strlen(b)-1;i>=0;i--){b1+=(b[i]-'0')*pow(10,k);
		k++;
	}
}
void compute(char *b,char *c,char mark){exchange(b);
	int k=b1;
	exchange(c);
	int k1=b1;
	int sum=0;
	if(mark=='a'){sum=k+k1;
	}
	else if(mark=='b'){sum=k-k1;
	}
	else {sum=k*k1;
	}
	change(sum);
	cout<=0;i--){printf("%c",d[i]);
	}
	printf("\n");
	cout<int n;
	cin>>n;
	int t=n;
	char mark;
	while(t--){cin>>a;
	if(a[0]<'0'||a[0]>'9'){mark=a[0];
		cin>>b;
		cin>>c;
	compute(b,c,mark);	
	}
	else{cin>>b;
		compute(a,b,mark);
	}
a[0]='\0';
b[0]='\0';
c[0]='\0';
d[0]='\0';	
}
return 0;
}
大佬的代碼:

同樣他是采用sscanf,sprintf方法將字符轉(zhuǎn)整數(shù);

#include#include#includeusing namespace std;
int main(){int n;
	char a;
	int c,d;
	char b[100],s[100];
	cin>>n;
	for(int i=0;icin>>b;
	if(b[0]<'0'||b[0]>'9'){a=b[0];
		cin>>c>>d;
	}	
	else{sscanf(b,"%d",&c);//將b轉(zhuǎn)化為c的int型;
		cin>>d; 
	}
	memset(s,0,sizeof(s));
	if(a=='a'){sprintf(s,"%d+%d=%d",c,d,c+d);
	}
	else if(a=='b'){sprintf(s,"%d-%d=%d",c,d,c-d);
	}
	else{sprintf(s,"%d*%d=%d",c,d,c*d);
	}
	cout<

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

名稱欄目:兩種方法解決口算練習(xí)題-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://www.muchs.cn/article8/pccop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、定制網(wǎng)站、云服務(wù)器自適應(yīng)網(wǎng)站、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)