1. 程式人生 > >PAT考試乙級1027(C語言實現)

PAT考試乙級1027(C語言實現)

#include<stdio.h>
#include<math.h>
int main(){
    int n,m,t,i,j;
    char c;
    scanf("%d %c",&n,&c);
    m=1;//中間那一個符號
    n=n-m;//去掉中間那一個符號
    while(n-2*(m+2)>=0){
        m=m+2;
        n=n-2*m;
    }
    t=m/2;
    for(i=0;i<m;i++){
        for(j=0;j<t-abs(i-t);j++)
            printf
(" "); for(j=0;j<abs(t-i)*2+1;j++) printf("%c",c); printf("\n"); } printf("%d",n); return 0; }

總結:
1、得到m的值,即迴圈多少行。
2、這裡寫圖片描述
加abs()絕對值函式 只要是防止列印下半部分時會出現負數。

相關推薦

PAT考試乙級1027(C語言實現)

#include<stdio.h> #include<math.h> int main(){ int n,m,t,i,j; char c; scanf("%d %c",&n,&c); m=1

PAT考試乙級1014(C語言實現) 部分正確

#include<stdio.h> #include <string.h> int main(){ int i,l1,l2; char s1[61],s2[61],s3[61],s4[61]; scanf("%s%

PAT考試乙級1018(C語言實現)

大家應該都會玩“錘子剪刀布”的遊戲:兩人同時給出手勢,勝負規則如圖所示: 現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。 輸入格式: 輸入第1行給出正整數N(<=105),即雙方交鋒的次數。隨後N行,每行

PAT考試乙級1007(C語言實現)

#include<stdio.h> #include<math.h> int main(){ int num,i,j,t=0,s[100000]={0},count=0; scanf("%d",&num);

PAT考試乙級1010(C語言實現)

#include<stdio.h> int main(){ int a=0,b=0,flag=0; char ch; do{ scanf("%d %d",&a,&b); ch

PAT考試乙級1005(C語言實現)

#include<stdio.h> int main(){ int num=0,i=0,n[1000]={0},a[101]={0},count=0; scanf("%d",&num); if(num<100)

PAT考試乙級1017(C語言實現)

#include<stdio.h> #include<string.h> int main(){ char A[1001]={0},Q[1001]={0};//注意陣列初始值 int B=0,R=0,i=0,j=0;

PAT】甲級1002——C語言實現

This time, you are supposed to find A+B where A and B are two polynomials.InputEach input file contains one test case. Each case occupies 2 lines, and each

PAT】甲級1001——C語言實現

Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than f

pat乙級1084 外觀數列(c語言實現

#include<stdio.h>#include<string.h>#define MAXN 100005char s[MAXN],t[MAXN];char *ps,*pt;main(){    char now;//µ±Ç°¼ÆÊýint num,

pat 乙級1082 射擊比賽(c語言實現

#include<stdio.h>#include<stdlib.h>typedef struct d{int id;int grade;}man;int cmp(const void*a,const void*b){man s1=*(man*)a;m

PAT乙級)1065 單身狗(C語言實現

總結: 1、我最初的想法是一遍遍去遍歷,但其實自己心裡也清楚這樣迴圈層數多,容易執行超時,所以以下思路借鑑柳婼小姐姐。 思路:定義情侶陣列couple[ ]={-1},每個人對應的編號的陣列儲存自己情侶的編號。這樣有情侶的人對應的初值不再是-1,其他對應值仍是-1

PAT乙級)1002 寫出這個數(C語言實現

總結:1、關鍵點在於:求出和sum之後怎麼將其輸出成拼音的問題。這裡巧妙地運用了一個函式:sprintf(str,“%d”,num);即                   和printf的使用時一樣的,只不過printf是將num輸出到螢幕上,sprintf將num列印

PAT乙級)1020 月餅(C語言實現

總結: 1、其實思路跟“德才論”那題很像。對每一種類月餅建立結構體變數,然後使用qsort函式按照月餅單售價排序,計算總價時,如果單售價最高的月餅庫存量<=最大需求量,即可以售光該類月餅,最大需求量-庫存量後再進行單售價次之的判斷;否則,只能售出最大需求量*單價。

PAT乙級)1003 我要通過!(C語言實現

總結:1、重要的是找規律。即: 形如 xPATx 的字串正確的有: PAT、APATA、AAPATAA、AAAPATAAA,就是中間一個A左右加上等量的A(不加也行)都是正確的。 如果 aPbTc 是正確的,那麼 aPbATca 也是正確的,拿上面的那幾個正確的

PAT乙級)1007 素數對猜想(C語言實現

總結:關鍵在於判斷是不是素數的程式碼段可以作為常識記憶,即: for(i=3;i<=n;i++)   {     k=sqrt(i);     for(j=2;j<=k;j++)     {       if(i%j==0)       break;   

PAT乙級)1032 挖掘機技術哪家強(C語言實現

總結: 1、求對應相同編號的分數總和時,一開始我是想分開用陣列儲存編號和對應的分數和,這樣操作既複雜然後又沒通過測試,看了大佬的想法,直接用編號作為陣列的位號,去儲存對應的分數和,會簡單很多。 2、特別要注意陣列的上下界和迴圈的次數,不然會造成結果錯誤。

PAT乙級)1029 舊鍵盤(C語言實現

總結: 1、思路就是對於應該輸入的文字的每一個字元在實際輸入的文字中遍歷,看是否能鍵入。如果在實際輸入的文字中沒發現,將對該字元進行儲存,但需要對將要儲存的字元陣列遍歷,看該數組裡是否已存在該字元。 2、因為字母的大寫和小寫在此題目中相當於同一個字元,所以判斷是否

PAT乙級)1025 反轉連結串列(C語言實現

總結: 1、首先要有hash雜湊思想,關鍵字是首地址,對應到的陣列內可以查詢到首地址對應的數值和下一地址。這樣可以構成一組資料的輸入。 2、還應該考慮輸入樣例中有不在連結串列中的結點的情況。所以用個sum計數統計在連結串列裡的有效節點。注意連結串列的最後為空,所以對應

PAT乙級)1008 陣列元素迴圈右移問題(C語言實現

總結:1、思路:定義陣列空間時大一些,將前(N-M)個數移到N個數後。即利用本陣列多餘的空間來儲存數字,也相當於構建了                  另一個數組的作用。            2、坑點:不要想當然地認為N>M,所以在M>N時需要對M進行處