真不知道为什么写成这鸟样才能AC,之前用C++写过一个逻辑清晰的,始终不能AC,于是把换成C语言,
所有的循环用手写出来(我真不想这样),居然AC了,代码看起来真烂,可是T M D居然AC了。。。。
。欲哭无泪啊。。。M*D,浪费了老子两个小时,没检查出任何错误。九度,你妹!!!
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{int n=0,i=0,offset=0;;char bag[1000]={0};int num[1000]={0};scanf("%d",&n);gets(bag);while(n--){int index=0,dest[4]={0};gets(bag);for(int j=0;j<strlen(bag);j++){char c=bag[j];if(c!=' '){if(isdigit(c)){c=c-'0';}else{c =c-'a'+10;}num[index]=c;index++;}}offset=num[1]*8;dest[0]=num[32]*16+num[33];dest[1]=num[34]*16+num[35];dest[2]=num[36]*16+num[37];dest[3]=num[38]*16+num[39]; printf("Case #%d\n",++i);printf("Total length = %d bytes\n",num[4]*256*16+num[5]*256+num[6]*16+num[7]);printf("Source = %d.%d.%d.%d\n",num[24]*16+num[25],num[26]*16+num[27],num[28]*16+num[29],num[30]*16+num[31]);printf("Destination = %d.%d.%d.%d\n",dest[0],dest[1],dest[2],dest[3]);printf("Source Port = %d\n",num[offset]*256*16+num[1+offset]*256+num[2+offset]*16+num[3+offset]);printf("Destination Port = %d\n\n",num[4+offset]*256*16+num[5+offset]*256+num[6+offset]*16+num[7+offset]);}return 0;
}/**************************************************************Problem: 1475User: 爱理momokoLanguage: CResult: AcceptedTime:10 msMemory:916 kb
****************************************************************/