pta程序設計平臺答案、
本題要求編寫程序,輸出一個短句“Programming in C is fun!”。
輸入格式:
本題目沒有輸入。
輸出格式:
在一行中輸出短句“Programming in C is fun!”。
#include<stdio.h>
int main(void)
{printf("Programming in C is fun!\n");
}
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;
}
已知函數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;
}
本題要求編寫程序,輸出一個短句“What is a computer?”。
輸入格式:
本題目沒有輸入。
輸出格式:
在一行中輸出短句“What is a computer?”。
#include<stdio.h>
int main()
{printf("What is a computer?");return 0;
}
假設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;
}
本題要求根據火車的出發時間和達到時間,編寫程序計算整個旅途所用的時間。
輸入格式:
輸入在一行中給出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;
}
某公司員工的工資計算方法如下:一周內工作時間不超過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;
}
股票價格漲跌趨勢,常用蠟燭圖技術中的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;
}
據說一個人的標準體重應該是其身高(單位:厘米)減去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;
}
本題要求編寫程序,針對輸入的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;
}
我們已經知道了將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;
}
輸入一個正整數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;
}
給定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;
}
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;
}
模擬交通警察的雷達測速儀。輸入汽車速度,如果速度超出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;
}
若一個線性表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++;}}}
}
本題要求編寫程序,從給定字符串中查找某指定的字符。
輸入格式:
輸入的第一行是一個待查找的字符。第二行是一個以回車結束的非空字符串(不超過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);
}
本題要求編寫程序,計算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); //反之成立
}
本題要求編寫程序,輸出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;
}
本題要求編寫程序,針對輸入的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;
}
創作不易,有用請點個贊,感謝各位!
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态