計蒜課難題題庫之奇怪的國家

      這是很簡單的一道題啊:

有一個奇怪的國家,裏面的國民對於事情的態度永遠只有兩面。當兩個人遇到一起討論一個事情的時候——兩個持贊同觀點的人遇到一起後會對這個事情都繼續贊同;一個持贊同觀點的人遇到一個持不贊同觀點的人的時候,兩人都會不再繼續贊同;兩個持不贊同觀點的人遇到一起討論後反而會對這個事情開始贊同。

輸入包括兩行,每行包括N個數字(1≤N≤50,分別表示兩個人對於N個事情對應的看法——0表示不贊同、1表示贊同。

輸出包括一行,包括N個數字,表示兩人相遇後,對於這N件事情的最終看法。

輸入:

11100101
00101011
輸出:

00110001

我的思路很簡單,沒有做什麼字符型數組與整數數組的轉化,就是簡單的比較兩個字符數組每個元素的大小,相同第三個數組就爲1,否則就爲0。

代碼:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void judge(char a1[],char a2[],char a3[],int long_num)
{
    int i;
    for(i=0;i<long_num;i++)
    {
        if(a1[i]==a2[i])
        {
            a3[i]='1';
        }
        else
        {
            a3[i]='0';
        }
    }
    a3[long_num]='\0';

}
int main()
{
    char a1[50];
    char a2[50];
    int long1,long_num;
    int i;
    gets(a1);
    gets(a2);
    long_num=strlen(a1);
    if(long_num!=strlen(a2))
    {
        printf("Different lenth");
        exit(0);
    }
    char *a3;
    a3=malloc(sizeof(char)*(long_num+1));
    judge(a1,a2,a3,long_num);
    puts(a3);
}

總結:

我遇到了個問題,就是gets與fgets輸入時,gets會捨棄最後的換行符,而fgets會加入數組,所以長度會比gets多一。

發佈了29 篇原創文章 · 獲贊 15 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章