7-1 IP位址轉換 (20分)
題目:
一個IP位址是用四個位元組(每個位元組8個位)的二進制碼組成。請将32位二進制碼表示的IP位址轉換為十進制格式表示的IP位址輸出。
輸入格式:
輸入在一行中給出32位二進制字元串。
輸出格式:
在一行中輸出十進制格式的IP位址,其由4個十進制數組成(分别對應4個8位的二進制數),中間用“.”分隔開。
輸入樣例:
11001100100101000001010101110010
輸出樣例:
204.148.21.114
代碼:
#include<stdio.h>
#include
#include
int main()
{
double sum=0,shu[4][8];
for(int i=0;i<=3;i++)
{
sum=0;
for(int u=0;u<=7;u++)
{
scanf("%1lf",&shu[i][u]);
if(shu[i][u]==1)sum=sum+pow(2,7-u);
}
if(i0)printf("%.0lf",sum);
else printf(".%.0f",sum);
}
return 0;
}
思路:
在寫這道題之前看了一下其他大大的,發現他們大多用的是字元型數組去處理這個長長的輸入,看到一個輸入是%8s,又因為我仍然還是想用int型,于是試了試%1lf使32個數字分為三十二次單獨輸入。
結果:
PTA的測試試點全過
(大家可以作參考哦)