pta程序設計平臺答案,PTA 程序設計天梯賽(81~100題)

 2023-12-25 阅读 29 评论 0

摘要:文章目錄81、Programming in C is fun! (5 分)82、出租車計價 (15 分)83、求冪級數展開的部分和 (20 分)84、 What is a computer? (5 分)85、將x的平方賦值給y (5 分)86、 計算火車運行時間 (15 分)87、計算工資 (15 分)88、 日K蠟燭圖 (15 分)89、 到底是不是太胖了 (10 分

文章目錄

    • 81、Programming in C is fun! (5 分)
    • 82、出租車計價 (15 分)
    • 83、求冪級數展開的部分和 (20 分)
    • 84、 What is a computer? (5 分)
    • 85、將x的平方賦值給y (5 分)
    • 86、 計算火車運行時間 (15 分)
    • 87、計算工資 (15 分)
    • 88、 日K蠟燭圖 (15 分)
    • 89、 到底是不是太胖了 (10 分)
    • 90、找最小的字符串 (15 分)
    • 91、 字符串的冒泡排序 (20 分)
    • 92、組織星期信息 (10 分)
    • 93、 奇偶分家 (10 分)
    • 94、 海盜分贓 (25 分)
    • 95、 超速判斷 (10 分)
    • 96、 jmu-ds-順序表區間元素刪除 (15 分)
    • 97、查找指定字符 (15 分)
    • 98、復數四則運算 (15 分)
    • 99、 輸出三角形字符陣列 (15 分)
    • 100、找最長的字符串 (15 分)

創作不易,有用請點個贊,感謝各位!

pta程序設計平臺答案、

81、Programming in C is fun! (5 分)

本題要求編寫程序,輸出一個短句“Programming in C is fun!”。

輸入格式:
本題目沒有輸入。

輸出格式:
在一行中輸出短句“Programming in C is fun!”。

#include<stdio.h>
int main(void)
{printf("Programming in C is fun!\n");
}

82、出租車計價 (15 分)

7-3 出租車計價 (15 分)
本題要求根據某城市普通出租車收費標準編寫程序進行車費計算。具體標準如下:

起步里程為3公里,起步費10元;
超起步里程后10公里內,每公里2元;
超過10公里以上的部分加收50%的回空補貼費,即每公里3元;
營運過程中,因路阻及乘客要求臨時停車的,按每5分鐘2元計收(不足5分鐘則不收費)。
輸入格式:
輸入在一行中給出輸入行駛里程(單位為公里,精確到小數點后1位)與等待時間(整數,單位為分鐘),其間以空格分隔。

輸出格式:
在一行中輸出乘客應支付的車費(單位為元),結果四舍五入,保留到元。

輸入樣例1:
2.6 2
輸出樣例1:
10
輸入樣例2:
5.1 4
輸出樣例2:
14
輸入樣例3:
12.5 9
輸出樣例3:
34

#include<stdio.h>
int main()
{double km;			//公里int m=0;			//分鐘double money=0;		//錢int yu;scanf("%lf %d",&km,&m);if(m<5)				//	<5分鐘的情況{if(km<=3)		//0~3公里money=10;else if(km<=10)	//3~10公里money=10+(km-3)*2;else			//10以上公里money=10+7*2+(km-10)*3;}else{if(km<=3)		//0~3公里money=10+(m/5)*2;else if(km<=10)	//3~10公里money=10+(km-3)*2+(m/5)*2;else			//10以上公里money=10+7*2+(km-10)*3+(m/5)*2;}printf("%1.lf\n",money);return 0;
}

83、求冪級數展開的部分和 (20 分)

已知函數e
?x
?? 可以展開為冪級數1+x+x
?2
?? /2!+x
?3
?? /3!+?+x
?k
?? /k!+?。現給定一個實數x,要求利用此冪級數部分和求e
?x
?? 的近似值,求和一直繼續到最后一項的絕對值小于0.00001。

輸入格式:
輸入在一行中給出一個實數x∈[0,5]。

輸出格式:
在一行中輸出滿足條件的冪級數部分和,保留小數點后四位。

輸入樣例:
1.2
輸出樣例:
3.3201

#include<stdio.h>
#include<math.h>
double jiecheng(double n);
int main()
{double x;		//輸入一個實數double n=0;		//下面我會給出一個推導公式,你就懂了兄弟double c=0;		//表示次方double sum=0;	//求總和double result;	//最后一項的絕對值scanf("%lf",&x);/*	題目公式:	 【1】   +  【x】   +【x^2/2!】+【x^3/3!】+【x^n/n!】	*//*	上下中括號都有各5個,然而這5個其實都是對等的!不信你們就在本子上算呀^_^哈哈! *//*	推到公式: 【x^0/0!】+【x^1/1!】+【x^2/2!】+【x^3+3!】+【x^n/n!】	*/do{result=pow(x,c)/(jiecheng(n));sum+=result;n++;c++;}while((jiecheng(n))>=0.00001);result=pow(x,c)/(jiecheng(n));sum+=result;printf("%.4f\n",sum);return 0;
}
double jiecheng(double n)
{int mix=1;for(int i=1;i<=n;i++)mix=mix*i;return mix;
}

84、 What is a computer? (5 分)

本題要求編寫程序,輸出一個短句“What is a computer?”。

輸入格式:
本題目沒有輸入。

輸出格式:
在一行中輸出短句“What is a computer?”。

#include<stdio.h>
int main()
{printf("What is a computer?");return 0;
}

85、將x的平方賦值給y (5 分)

假設x的值為3,計算x的平方并賦值給y,分別以“y = x ? x”和“x ? x = y”的形式輸出x和y的值。

輸入格式:
本題無輸入

輸出格式:
按照下列格式輸出代入x=3的結果:

y = x * x
x * x = y

#include<stdio.h>
int main()
{int x=3;int y;printf("%d = %d * %d\n%d * %d = %d\n",x*x,x,x,x,x,x*x);return 0;
}

86、 計算火車運行時間 (15 分)

本題要求根據火車的出發時間和達到時間,編寫程序計算整個旅途所用的時間。

輸入格式:
輸入在一行中給出2個4位正整數,其間以空格分隔,分別表示火車的出發時間和到達時間。每個時間的格式為2位小時數(00-23)和2位分鐘數(00-59),假設出發和到達在同一天內。

輸出格式:
在一行輸出該旅途所用的時間,格式為“hh:mm”,其中hh為2位小時數、mm為2位分鐘數。

輸入樣例:
1201 1530
輸出樣例:
03:29

#include <stdio.h>
#include <stdlib.h>
int main() 
{int h;		//小時int m;		//分鐘int num1;	//出發時間int num2;	//到達時間scanf("%d%d",&num1,&num2);h=num2/100-num1/100;            //4位整型取前2位(小時)m=num2%100-num1%100;            //4位整型取余后2位(分鐘)if(m<0)                  //num1,num2都是在同一天,h一定大于0{m=60+m;                 //當m小于0,從h借來一小時,填補m的值h=h-1;}printf("%02d:%02d\n",h,m);	return 0;
}

87、計算工資 (15 分)

某公司員工的工資計算方法如下:一周內工作時間不超過40小時,按正常工作時間計酬;超出40小時的工作時間部分,按正常工作時間報酬的1.5倍計酬。員工按進公司時間分為新職工和老職工,進公司不少于5年的員工為老職工,5年以下的為新職工。新職工的正常工資為30元/小時,老職工的正常工資為50元/小時。請按該計酬方式計算員工的工資。

輸入格式:
輸入在一行中給出2個正整數,分別為某員工入職年數和周工作時間,其間以空格分隔。

輸出格式:
在一行輸出該員工的周薪,精確到小數點后2位。

輸入樣例1:
5 40
輸出樣例1:
2000.00
輸入樣例2:
3 50
輸出樣例2:
1650.00

#include<stdio.h>
int main()
{int year;					//工作年份int h;						//小時double money;scanf("%d %d",&year,&h);	//輸入功能if(year<5)					//新員工情況{	if(h<=40)				//正常工作的情況money=h*30;else					//加班的情況money=40*30+(h-40)*1.5*30;}else						//老員工的情況{if(h<=40)				//正常工作的情況money=h*50;else					//加班的情況money=40*50+(h-40)*1.5*50;}printf("%.2lf\n",money);	return 0;
}

88、 日K蠟燭圖 (15 分)

股票價格漲跌趨勢,常用蠟燭圖技術中的K線圖來表示,分為按日的日K線、按周的周K線、按月的月K線等。以日K線為例,每天股票價格從開盤到收盤走完一天,對應一根蠟燭小圖,要表示四個價格:開盤價格Open(早上剛剛開始開盤買賣成交的第1筆價格)、收盤價格Close(下午收盤時最后一筆成交的價格)、中間的最高價High和最低價Low。

如果Close<Open,表示為“BW-Solid”(即“實心藍白蠟燭”);如果Close>Open,表示為“R-Hollow”(即“空心紅蠟燭”);如果Open等于Close,則為“R-Cross”(即“十字紅蠟燭”)。如果Low比Open和Close低,稱為“Lower Shadow”(即“有下影線”),如果High比Open和Close高,稱為“Upper Shadow”(即“有上影線”)。請編程序,根據給定的四個價格組合,判斷當日的蠟燭是一根什么樣的蠟燭。

輸入格式:
輸入在一行中給出4個正實數,分別對應Open、High、Low、Close,其間以空格分隔。

輸出格式:
在一行中輸出日K蠟燭的類型。如果有上、下影線,則在類型后加上with 影線類型。如果兩種影線都有,則輸出with Lower Shadow and Upper Shadow。

輸入樣例1:
5.110 5.250 5.100 5.105
輸出樣例1:
BW-Solid with Lower Shadow and Upper Shadow
輸入樣例2:
5.110 5.110 5.110 5.110
輸出樣例2:
R-Cross
輸入樣例3:
5.110 5.125 5.112 5.126
輸出樣例3:
R-Hollow

#include<stdio.h>
int main()
{double o;		//Opendouble h;		//Highdouble l;		//Lowdouble c;		//Closescanf("%lf%lf%lf%lf",&o,&h,&l,&c);if(c<o){printf("BW-Solid");if(l<o && l<c && h>o && h>c)printf(" with Lower Shadow and Upper Shadow");else if(l<o && l<c)printf(" with Lower Shadow");else if(h>o && h>c)printf(" with Upper Shadow");}else if(c>o){printf("R-Hollow");if(l<o && l<c && h>o && h>c)printf(" with Lower Shadow and Upper Shadow");else if(l<o && l<c)printf(" with Lower Shadow");else if(h>o && h>c)printf(" with Upper Shadow");}else if(c==o){printf("R-Cross");if(l<o && l<c && h>o && h>c)printf(" with Lower Shadow and Upper Shadow");else if(l<o && l<c)printf(" with Lower Shadow");else if(h>o && h>c)printf(" with Upper Shadow");}return 0;
}

89、 到底是不是太胖了 (10 分)

據說一個人的標準體重應該是其身高(單位:厘米)減去100、再乘以0.9所得到的公斤數。真實體重與標準體重誤差在10%以內都是完美身材(即 | 真實體重 ? 標準體重 | < 標準體重×10%)。已知市斤是公斤的兩倍。現給定一群人的身高和實際體重,請你告訴他們是否太胖或太瘦了。

輸入格式:
輸入第一行給出一個正整數N(≤ 20)。隨后N行,每行給出兩個整數,分別是一個人的身高H(120 < H < 200;單位:厘米)和真實體重W(50 < W ≤ 300;單位:市斤),其間以空格分隔。

輸出格式:
為每個人輸出一行結論:如果是完美身材,輸出You are wan mei!;如果太胖了,輸出You are tai pang le!;否則輸出You are tai shou le!。

輸入樣例:
3
169 136
150 81
178 155
輸出樣例:
You are wan mei!
You are tai shou le!
You are tai pang le!

#include<stdio.h>
#include<math.h>
int main()
{int n;		//輸入正整數int h;		//身高int w;		//真實體重int x;		//標準體重/*	標準體重(市斤) =(身高-100)*0.9*0.2	*/scanf("%d",&n);if(n<1 || n>20)		return 0;   //n<=20for(int i=1;i<=n;i++){scanf("%d %d",&h,&w);if(h<120 || h>=200 || w<50 || w>300)	return 0;     // 120 < H < 200 和 50 < W ≤ 300x = (h-100)*0.9*2;if(fabs(w-x) < x*0.1)printf("You are wan mei!\n");else if((fabs(w-x) >= x*0.1) && w<x)printf("You are tai shou le!\n");else if((fabs(w-x) >= x*0.1) && w>x)printf("You are tai pang le!\n");}return 0;
}

90、找最小的字符串 (15 分)

本題要求編寫程序,針對輸入的N個字符串,輸出其中最小的字符串。

輸入格式:
輸入第一行給出正整數N;隨后N行,每行給出一個長度小于80的非空字符串,其中不會出現換行符,空格,制表符。

輸出格式:
在一行中用以下格式輸出最小的字符串:

Min is: 最小字符串
輸入樣例:
5
Li
Wang
Zha
Jin
Xian
輸出樣例:
Min is: Jin

7-7 找最小的字符串 (15 分)

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{char a[10000][80];int n;int i,j;int min;char temp[80];scanf("%d",&n);getchar();for(i=0;i<n;i++)gets(a[i]);for(i=0;i<n-1;i++){min=i;for(j=i+1;j<n;j++)if(strcmp(a[min],a[j])>0)min=j;if(min!=i){strcpy(temp,a[min]);strcpy(a[min],a[i]);strcpy(a[i],temp);}}printf("Min is: %s",a[0]);return 0;
}

91、 字符串的冒泡排序 (20 分)

我們已經知道了將N個整數按從小到大排序的冒泡排序法。本題要求將此方法用于字符串序列,并對任意給定的K(<N),輸出掃描完第K遍后的中間結果序列。

輸入格式:
輸入在第1行中給出N和K(1≤K<N≤100),此后N行,每行包含一個長度不超過10的、僅由小寫英文字母組成的非空字符串。

輸出格式:
輸出冒泡排序法掃描完第K遍后的中間結果序列,每行包含一個字符串。

輸入樣例:
6 2
best
cat
east
a
free
day
輸出樣例:
best
a
cat
day
east
free

7-1 字符串的冒泡排序 (20 分)

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{int n,k;			//n→有幾個字符串,k→掃描幾次int i,j;			//用于循環和數組下標char a[100][11];	//用于存儲字符串char temp[11];scanf("%d%d",&n,&k);	//提供輸入n、k的功能getchar();for(i=0;i<n;i++)	//提供輸入字符串的功能scanf("%s",a[i]);for(i=0;i<k;i++){for(j=0;j<n-1-i;j++){if(strcmp(a[j],a[j+1])>0){strcpy(temp,a[j]);strcpy(a[j],a[j+1]);strcpy(a[j+1],temp);}}}for(i=0;i<n;i++)printf("%s\n",a[i]);return 0;
}

92、組織星期信息 (10 分)

輸入一個正整數repeat (0<repeat<10),做repeat次下列運算:

定義一個指針數組將下面的星期信息組織起來,輸入一個字符串,在表中查找,若存在,輸出該字符串在表中的序號,否則輸出-1。

Sunday Monday Tuesday Wednesday Thursday Friday Saturday

輸入輸出示例:括號內為說明,無需輸入輸出

輸入樣例 (repeat=3) :
3
Tuesday
Wednesday
year
輸出樣例:
3
4
-1

7-2 組織星期信息 (10 分)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{char *p[] ={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};int repeat;		//輸入幾個數int i,j;		//用于循環和數組下標//int flag = 0;	//判斷是否有輸出那句話char tmp[50];	//輸入的字符串scanf("%d",&repeat);getchar();for(i=0;i<repeat;i++){gets(tmp);for(j=0;j<7;j++){if(strcmp(tmp,p[j])==0){	printf("%d\n",j+1);	break;	}else if(j==6)printf("-1\n");}}return 0;
}

93、 奇偶分家 (10 分)

給定N個正整數,請統計奇數和偶數各有多少個?

輸入格式:
輸入第一行給出一個正整N(≤1000);第2行給出N個非負整數,以空格分隔。

輸出格式:
在一行中先后輸出奇數的個數、偶數的個數。中間以1個空格分隔。

輸入樣例:
9
88 74 101 26 15 0 34 22 77
輸出樣例:
3 6

7-3 奇偶分家 (10 分)

#include <stdio.h>
#include <math.h>
int main()
{int n;			//有幾個數int a[1001];	//存儲數據的空間int i;		//用于循環和數組下標int ji=0,ou=0;	//ji→統計奇數數量,ou→統計偶數數量scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++){if(a[i]%2==0)ou++;elseji++;}printf("%d %d\n",ji,ou);return 0;
}

94、 海盜分贓 (25 分)

P 個海盜偷了 D 顆鉆石后來到公海分贓,一致同意如下分贓策略:

首先,P 個海盜通過抽簽決定 1 - P 的序號。然后由第 1 號海盜提出一個分配方案(方案應給出每個海盜分得的具體數量),如果能夠得到包括 1 號在內的絕對多數(即大于半數)同意,則按照該分配方案執行,否則 1 號將被投入大海喂鯊魚;而后依次類似地由第 2 號、第 3 號等等海盜提出方案,直到能夠獲得絕對多數同意的方案出現為止,或者只剩下最后一位海盜,其獨占所有鉆石。請編寫一個程序,給出第 1 號海盜的鉆石分配方案中自己分得的鉆石數量。

附帶的三個假定:

“聰明”與“貪婪”假定:每個海盜總能夠以本人利益最大化作為行為準則;
“人性化”假定:在能夠取得盡量多鉆石的情況下,海盜不會故意致同伙于死地;
“無偏見”假定:海盜之間沒有個人恩怨,分給其他海盜鉆石的次序以小序號優先為原則。
輸入格式:
輸入在一行中給出 2 個正整數 D 和 P(3≤P≤D≤100)。

輸出格式:
輸出第 1 號海盜的鉆石分配方案中自己分得的鉆石數量。

輸入樣例:
10 7
輸出樣例:
6

7-9 海盜分贓 (25 分)

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{int d,p;					//d→鉆石數量,p→人數scanf("%d %d",&d,&p);		//提供輸入鉆石、人數的功能if(p == 3){printf("%d",d-1);}else{printf("%d",d-(p/2+1));	//轉化為數學規律 當人數超過三個人的時候 第一個海盜得到的金幣為: D - (P / 2 + 1)}return 0;
}

95、 超速判斷 (10 分)

模擬交通警察的雷達測速儀。輸入汽車速度,如果速度超出60 mph,則顯示“Speeding”,否則顯示“OK”。

輸入格式:
輸入在一行中給出1個不超過500的非負整數,即雷達測到的車速。

輸出格式:
在一行中輸出測速儀顯示結果,格式為:Speed: V - S,其中V是車速,S或者是Speeding、或者是OK。

輸入樣例1:
40
輸出樣例1:
Speed: 40 - OK
輸入樣例2:
75
輸出樣例2:
Speed: 75 - Speeding

7-4 超速判斷 (10 分)

#include<stdio.h>
int main()
{int sudu;scanf("%d",&sudu);if(sudu<=60){printf("Speed: %d - OK\n",sudu);}else{printf("Speed: %d - Speeding\n",sudu);}return 0;
}

96、 jmu-ds-順序表區間元素刪除 (15 分)

若一個線性表L采用順序存儲結構存儲,其中所有的元素為整數。設計一個算法,刪除元素值在[x,y]之間的所有元素,要求算法的時間復雜度為O(n),空間復雜度為O(1)。

輸入格式:
三行數據,第一行是順序表的元素個數,第二行是順序表的元素,第三行是x和y。

輸出格式:
刪除元素值在[x,y]之間的所有元素后的順序表。

輸入樣例:
10
5 1 9 10 67 12 8 33 6 2
3 10

輸出樣例:
1 67 12 33 2

7-8 jmu-ds-順序表區間元素刪除 (15 分)

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int g=0,t=0;int x,y;int L[]={1,2,3,4,5,6,7,8,9,21213,123,1123,1,132123,123,123,132,23,123,12,32,123,123,12,132,123,12,32,123,12,132,123,1,23,132,123,312,321,12312,32,123,123,1,1231,231,23,123,1321,32,12,132,123,132,123,123,132,12,123,123,123,123,1,231,231,231,231,231,21,321,231,231,3,1,1,3,1321,1,1,132,123,1,1321,1,32,32,123,123,123,132,23,1321,321,1,23,1,123,13,1231,32,231,1,321,123,1,132,123,123,132,123,132,12,132,123,132,132,321,132,123,23,132,132,132,132,13,213,2,132,1,231,32,132,132,132,132,23,132,132,132,132,13,213,2,132,1,231,32,132,132,132,13,23,132,132,132,132,13,213,2,132,1,231,32,132,132,132,13};int i,j;for(i=0;i<n;i++)L[i]=scanner.nextInt();x = scanner.nextInt();y = scanner.nextInt();for(i=0;i<n;i++){if(L[i]>=x && L[i]<=y){	L[i]=0;}}for(i=0;i<n;i++)if(L[i]!=0)g++;for(i=0;i<n;i++){if(L[i]!=0){if(t!=g-1)System.out.print(L[i] + " ");elseSystem.out.print(L[i]);t++;}}}
}

97、查找指定字符 (15 分)

本題要求編寫程序,從給定字符串中查找某指定的字符。

輸入格式:
輸入的第一行是一個待查找的字符。第二行是一個以回車結束的非空字符串(不超過80個字符)。

輸出格式:
如果找到,在一行內按照格式“index = 下標”輸出該字符在字符串中所對應的最大下標(下標從0開始);否則輸出"Not Found"。

輸入樣例1:
m
programming
輸出樣例1:
index = 7
輸入樣例2:
a
1234
輸出樣例2:
Not Found

#include<stdio.h>
int main(void)
{char c,b[10010];	//待查詢的字符,輸入的字符串int index=-1;		//標記scanf("%c",&c);getchar();		//吃掉一個空格,否則會被認為是字符串中的內容gets(b);		受到gets輸入的影響,字符串都以\0作為結尾for(int i=0;b[i]!='\0';i++)	//所以這里就從0開始,一直執行到等于\0時才結束if(b[i]==c)	//當出現一次待查詢字符時,就標記一次,一直到循環結束為止index=i;if(index==-1)printf("Not Found\n");elseprintf("index = %d\n",index);
}

98、復數四則運算 (15 分)

本題要求編寫程序,計算2個復數的和、差、積、商。

輸入格式:
輸入在一行中按照a1 b1 a2 b2的格式給出2個復數C1=a1+b1i和C2=a2+b2i的實部和虛部。題目保證C2不為0。

輸出格式:
分別在4行中按照(a1+b1i) 運算符 (a2+b2i) = 結果的格式順序輸出2個復數的和、差、積、商,數字精確到小數點后1位。如果結果的實部或者虛部為0,則不輸出。如果結果為0,則輸出0.0。

輸入樣例1:
2 3.08 -2.04 5.06
輸出樣例1:
(2.0+3.1i) + (-2.0+5.1i) = 8.1i
(2.0+3.1i) - (-2.0+5.1i) = 4.0-2.0i
(2.0+3.1i) * (-2.0+5.1i) = -19.7+3.8i
(2.0+3.1i) / (-2.0+5.1i) = 0.4-0.6i
輸入樣例2:
1 1 -1 -1.01
輸出樣例2:
(1.0+1.0i) + (-1.0-1.0i) = 0.0
(1.0+1.0i) - (-1.0-1.0i) = 2.0+2.0i
(1.0+1.0i) * (-1.0-1.0i) = -2.0i
(1.0+1.0i) / (-1.0-1.0i) = -1.0

7-3 復數四則運算 (15 分)

#include<stdio.h>
void shizi(double x,double y);		//負責打印式子
void result(double x,double y);		//負責打印結果
struct Love{		double shi,xu;	//表示實部,虛部
}love1,love2;
int main()
{	scanf("%lf%lf%lf%lf",&love1.shi,&love1.xu,&love2.shi,&love2.xu);//下面的計算根據復數的實部與虛部計算公式://求加法的實部與虛部值double jia_shi = love1.shi + love2.shi;double jia_xu  = love1.xu  + love2.xu;//求減法的實部與虛部值double jian_shi = love1.shi - love2.shi;double jian_xu  = love1.xu  - love2.xu;//求乘法的實部與虛部值double cheng_shi = love1.shi*love2.shi-love1.xu*love2.xu;double cheng_xu  = love1.xu*love2.shi+love1.shi*love2.xu;//求除法的實部與虛部值double chu_shi = (love1.shi*love2.shi+love1.xu*love2.xu)/(love2.shi*love2.shi+love2.xu*love2.xu);double chu_xu  = (love1.xu*love2.shi-love1.shi*love2.xu)/(love2.shi*love2.shi+love2.xu*love2.xu);//因為題目的輸出結果要分多種情況,那就在函數里來判斷情況輸出吧//加法shizi(love1.shi,love1.xu);	//式子printf(" + ");shizi(love2.shi,love2.xu);	//式子printf(" = ");result(jia_shi,jia_xu);		//結果//減法shizi(love1.shi,love1.xu);	//式子printf(" - ");shizi(love2.shi,love2.xu);	//式子printf(" = ");result(jian_shi,jian_xu);		//結果//乘法shizi(love1.shi,love1.xu);	//式子printf(" * ");shizi(love2.shi,love2.xu);	//式子printf(" = ");result(cheng_shi,cheng_xu);		//結果//除法shizi(love1.shi,love1.xu);	//式子printf(" / ");shizi(love2.shi,love2.xu);	//式子printf(" = ");result(chu_shi,chu_xu);		//結果return 0;
}
void shizi(double x,double y)		//負責打印式子
{if(y<0)							//虛部為負數的時候不用加'+'號printf("(%.1lf%.1lfi)",x,y);elseprintf("(%.1lf+%.1lfi)",x,y);	//反之成立
}
void result(double rshi,double rxu)
{	//虛部不存在時,只需輸出實部if(rxu<=0.05&&rxu>=-0.05)	//其實這里也判斷了兩段都沒有的情況,輸出0.0printf("%.1lf\n",rshi);else if(rshi<=0.05&&rshi>=-0.05)	//實部不存在時,輸出虛部單個即可printf("%.1lfi\n",rxu);else if(rxu<0)printf("%.1lf%.1lfi\n",rshi,rxu);	//結果虛部為負數的時候不用加'+'號elseprintf("%.1lf+%.1lfi\n",rshi,rxu);	//反之成立
}

99、 輸出三角形字符陣列 (15 分)

本題要求編寫程序,輸出n行由大寫字母A開始構成的三角形字符陣列。

輸入格式:
輸入在一行中給出一個正整數n(1≤n<7)。

輸出格式:
輸出n行由大寫字母A開始構成的三角形字符陣列。格式見輸出樣例,其中每個字母后面都有一個空格。

輸入樣例:
4
輸出樣例:
A B C D
E F G
H I
J

輸出三角形字符陣列 (15 分)

#include<stdio.h>
int main()
{int n,i,j;char x=64;  //從A開始,A的ASCLL是65,進j循環時+1scanf("%d",&n);for(i=0;i<n;i++)  //控制行數{for(j=0;j<n-i;j++)  //控制打印{ x += 1; //每一次都要+1,A→65,B→66printf("%c ",x);}printf("\n");}return 0;
}

100、找最長的字符串 (15 分)

本題要求編寫程序,針對輸入的N個字符串,輸出其中最長的字符串。

輸入格式:
輸入第一行給出正整數N;隨后N行,每行給出一個長度小于80的非空字符串,其中不會出現換行符,空格,制表符。

輸出格式:
在一行中用以下格式輸出最長的字符串:

The longest is: 最長的字符串
如果字符串的長度相同,則輸出先輸入的字符串。

輸入樣例:
5
li
wang
zhang
jin
xiang
輸出樣例:
The longest is: zhang

7-5 找最長的字符串 (15 分)

#include<stdio.h>
#include<string.h>
int main()
{int n,i;char a[100],b[100];	//a→拿來輸入的,b→拿來得到最長的字符串scanf("%d",&n);getchar();	//吃掉空格for(i=0;i<n;i++){gets(a);if(i==0)strcpy(b,a);	//第一此需復制,防止第一個就是最長的情況if(strlen(b)<strlen(a))	//若新來的比原來的還要長,那么就復制新來的來覆蓋掉原來的strcpy(b,a);}printf("The longest is: ");puts(b);return 0;
}

創作不易,有用請點個贊,感謝各位!

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/194742.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息