贊助商連結


目前分類:c語言 (8)

瀏覽方式: 標題列表 簡短摘要

[C語言] 字典檔排序,TXT讀檔後存入二維字元陣列中

文章標籤

周宇若 發表在 痞客邦 PIXNET 留言(0) 人氣()

內容 :

幫我排個數字謝謝QQ

輸入說明 :

有多筆測資以EOF為結束

第一行有一個正整數n(1<=n<=1000),代表有幾個數字要請你幫忙排

第二行有n個可以用int儲存的正整數

輸出說明 :

輸出n個已由小到大排序好的正整數

周宇若 發表在 痞客邦 PIXNET 留言(0) 人氣()

內容 :

文文記性不太好,常常會忘東忘西。他也常忘記 提款卡密碼,每次忘記密碼都得帶著身份證、存摺、印章親自到銀行去重設密碼,還得繳交 50 元的手續費,很是麻煩。後來他決定把密碼寫在提款卡上免得忘記,但是這樣一來,萬一提款卡掉了,存款就會被盜領。因此他決定以一個只有他看得懂的方式把密 碼寫下來。

他的密碼有 6 位數,所以他寫下了 7 個大寫字母,相鄰的每兩個字母間的「距離」就依序代表密碼中的一位數。所謂「距離」指的是從較「小」的字母要數幾個字母才能數到較「大」字母。字母的大小則是依其順序而定,越後面的字母越「大」。

假 設文文所寫的 7 個字母是 POKEMON,那麼密碼的第一位數就是字母 P 和 O 的「距離」,由於 P 就是 O 的下一個字母,因此,從 O 開始只要往下數一個字母就是 P 了,所以密碼的第一位數就是 1。密碼的第二位數則是字母 O 和 K 的「距離」,從 K 開始,往下數 4 個字母 (L, M, N, O) 就到了 O,所以第二位數是 4,以此類推。因此,POKEMON 所代表的密碼便是 146821。

噓!你千萬別把這個密秘告訴別人哦,要不然文文的存款就不保了。

周宇若 發表在 痞客邦 PIXNET 留言(0) 人氣()

編碼問題

在第二次世界大戰中,德軍的通訊編碼被美國破解,以致於機密被美國竊聽而慘敗。德軍的編碼規則(假)如下:將訊息每個字母往後推兩位再傳出去,例如 A→C、B→D,而後面的 Y→A、Z→B,所有的訊息都是大寫字母。而收到訊息的則是將每個字母往前推兩位,例如 C→A、D→B,而前面的 A→Y、B→Z。假設你是美軍的情報軍,要快速編碼及解碼德軍的訊息,希望完成一個程式,第一個字元為 + 代表要編碼,第一個字元為 - 代表要解碼,程式執行如下(粉紅色為輸入、淺藍色為輸出):

+FIRE

HKTG

-UVQR

STOP

 

擷取.JPG

#include <iostream>

using namespace std ;

 

int main ()

 

{

           int w;

           char a[200];

 

           while(gets(a))

 

           {

                if(a[0]=='+') {for (w=1; w<strlen(a); w++) {a[w]+=2;}  cout <<"編碼輸出!"<<a <<"\n";}

                if(a[0]=='-') {for (w=1; w<strlen(a); w++) {a[w]-=2;}    cout <<"解碼輸出!"<<a <<"\n";}

                if(a[0]=='\0') {break;}

 

           }

 

           return 0;

}

周宇若 發表在 痞客邦 PIXNET 留言(1) 人氣()

 

擷取.JPG


#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <time.h>

int main (void)

 

{

           int w;

           char in[100]={0};

           while(1)

           {

                     puts("輸入剛好12位數的數字");

                     gets(in);

                     if (strlen(in)!=12) {continue;}         //判斷字串是否剛好個字元不是就重新輸入

                     if (in[0]>'9'||in[0]<'1') {continue;}    //第一位不可以是所以比大或是比小就重新輸入!

                     for(w=0; w<strlen(in); w++)          //判斷每個陣列元素都是數字

                     {

                                if(in[w]>'9'||in[w]<'0') {break;}  //陣列元素不是就跳出for迴圈繼續while迴圈

                     }

                     if (w==strlen(in)) {break;}               //for迴圈執行完等於執行了次就跳出while迴圈

           }

           puts("輸入正確!!");


system ("pause");

}

周宇若 發表在 痞客邦 PIXNET 留言(0) 人氣()

 

擷取.JPG

 

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <time.h>

 

int main (void)

 

{

   

    int i,j;

    char q[50]={0};

    char a[50]={0};

    gets(q);

   

    for (j=0,i=strlen(q)-1; i>=0; j++,i--)

    {

        a[j]=q[i];

        printf("%c",a[j]);

    }

    printf("\n");

    puts(a);

 

 

system ("pause");

}

周宇若 發表在 痞客邦 PIXNET 留言(0) 人氣()

 

 

擷取.JPG

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

 

int main (void)

 

{

        int digital=0,english=0,space=0,other=0;

        int q=0;

        char in[200]={0};

        gets(in);

 

        while(q!=strlen(in))

        {

                if(in[q]>=48 && in[q]<=57) {digital++;}

                if((in[q]>'A' && in[q]<'Z') || (in[q]>'a' && in[q]<'z') ) {english++;}

                if(in[q]==' ') {space++;}

                else {other++;}

        q++;

        }

 

        printf("數字%d 英文%d 空白%d 其它%d\n",digital,english,space,other);

 

system ("pause");

}


周宇若 發表在 痞客邦 PIXNET 留言(0) 人氣()

#include <stdio.h>
#include <stdlib.h>

int main (void)

{
        int n,q,w;
        
        while(1)
        {
    printf("輸入小於10的正整數(-1結束):"); 
        scanf("%d",&n); 
    if(n==-1) {break;} 
    if(n>=10 || n<1) {continue;}
        
        
        for(q=1; q<=n; q++)
        {
                for(w=1; w<=n; w++)
                {
                printf("%d*%d=%2d\t",w,q,w*q);
                }               
                printf("\n");
        }
    }
    
system ("pause");
}

[C語言] 小於10的任意九九乘法表  

文章標籤

周宇若 發表在 痞客邦 PIXNET 留言(0) 人氣()