這是很簡單的一道題啊:
有一個奇怪的國家,裏面的國民對於事情的態度永遠只有兩面。當兩個人遇到一起討論一個事情的時候——兩個持贊同觀點的人遇到一起後會對這個事情都繼續贊同;一個持贊同觀點的人遇到一個持不贊同觀點的人的時候,兩人都會不再繼續贊同;兩個持不贊同觀點的人遇到一起討論後反而會對這個事情開始贊同。
輸入包括兩行,每行包括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多一。