user-0 提问: 【百度编程大赛】problem_1002

回复:
user: user-0
content: 引用 9 楼 line_us 的回复:看看错在哪，怎么弄。还望大神指点解题思路~

user: user-0
content: 引用 11 楼 zhao4zhong1 的回复:printf里面的%和变量的一一对应关系 scanf里面的%和变量以及变量前加不加&的一一对应关系 是C代码中非常容易出错的地方，而且通常编译还不出错。 所以在编译源代码之前值得专门仔细检查一遍甚至多遍。  在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。说得很细致，只是这样的内容对一个菜鸟来说根本不能实践啊

user: user-1
content: printf里面的%和变量的一一对应关系 scanf里面的%和变量以及变量前加不加&的一一对应关系 是C代码中非常容易出错的地方，而且通常编译还不出错。 所以在编译源代码之前值得专门仔细检查一遍甚至多遍。  在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。

user: user-0
content: 引用 5 楼 q5390498 的回复:楼主， printf("please input the number of zushu"); 这一类的提示在oj是不会出现的，要严格按照题目要求来，至于算法，我也同求好的，受教了~

user: user-0
content: 引用 1 楼 user-6 的回复:= =哥哥。。请多刷几道题。。。我正在刷题中。。。所以才有问题啊~~~

user: user-2
content: http://blog.csdn.net/czz5242199/article/details/26104413

user: user-3
content: 看看错在哪，怎么弄。

user: user-4
content: 楼主， printf("please input the number of zushu"); 这一类的提示在oj是不会出现的，要严格按照题目要求来，至于算法，我也同求

user: user-4
content: 引用 3 楼 anshiny 的回复:以下代码供参考：  #include<stdio.h> #include<math.h> #define SIZE            1001 #define TIME_PER_TRACK  400 #define TIME_PER_SECTOR 1 #define TIME_PER_READ   10 int main() { 	struct _point { 		int track; 		int sector; 	} point[SIZE];          int group, number, i, j; 	int sumTrack, sumSector, sumRead, sum;     scanf("%d", &group);//组数     for(i=0; i<group; i++)     { 		sumTrack = 0, sumSector = 0, sumRead = 0;         scanf("%d", &number); 		point[0].track = 0; 		point[0].sector = 0;         for(j=1; j<=number; j++)         {             scanf("%d%d", &point[j].track, &point[j].sector);         }         for(j=1; j<=number; j++)         {             sumTrack += (point[j].track - point[j - 1].track) * 2 * TIME_PER_TRACK;             if(abs(point[j].sector - point[j - 1].sector) < 180){ 				sumSector += abs(point[j].sector - point[j - 1].sector) * TIME_PER_SECTOR; 			} else{ 				sumSector += (360 - abs(point[j].sector - point[j - 1].sector)) * TIME_PER_SECTOR; 			} 			sumRead += 10;         } 		         if(abs(point[number].sector - point[0].sector) < 180){ 			sumSector += abs(point[number].sector - point[0].sector) * TIME_PER_SECTOR; 		} else{ 			sumSector += (360 - abs(point[number].sector - point[0].sector)) * TIME_PER_SECTOR; 		} 		sum = sumTrack + sumSector + sumRead; 		printf("%d\n", sum);     } 	 	printf("%d", sum); 	return 0; }  楼上的过了？我测试了你的好多数据，跟我的都一样，感觉我们的代码都差不多，能看看吗？ #include<iostream> #include<fstream> #include<cmath> using namespace std; typedef struct s { 	int x,y; }ss; int  sub(int i,int j) { 	int t; 	if(i<j) 	{ 		t=i; 		i=j; 		j=t; 	} 	if((i-j)>180) 		return (360-i)+j; 	return i-j; } int f(int i) { 	if(i>180) 		return 360-i; 	return i; } int main() { //	ifstream cin("aa.txt"); 	int T; 	cin>>T; 	while(T--) 	{ 		int n; 		cin>>n; 		int i; 		ss x[1000+10]; 		x[0].x=0; 		x[0].y=0; 		x[n+1].x=0; 		x[n+1].y=0; 		long long  sum1=0,sum2=0; 		for(i=1;i<=n;i++) 		{ 			cin>>x[i].x>>x[i].y; 			sum1+=400*(x[i].x-x[i-1].x)+sub(x[i].y,x[i-1].y); 			sum1+=10; 		} 		sum1+=400*(x[n].x)+f(x[n].y); 			cout<<sum1<<endl; 	} }

user: user-5
content: 以下代码供参考：  #include<stdio.h> #include<math.h> #define SIZE            1001 #define TIME_PER_TRACK  400 #define TIME_PER_SECTOR 1 #define TIME_PER_READ   10 int main() { 	struct _point { 		int track; 		int sector; 	} point[SIZE];          int group, number, i, j; 	int sumTrack, sumSector, sumRead, sum;     scanf("%d", &group);//组数     for(i=0; i<group; i++)     { 		sumTrack = 0, sumSector = 0, sumRead = 0;         scanf("%d", &number); 		point[0].track = 0; 		point[0].sector = 0;         for(j=1; j<=number; j++)         {             scanf("%d%d", &point[j].track, &point[j].sector);         }         for(j=1; j<=number; j++)         {             sumTrack += (point[j].track - point[j - 1].track) * 2 * TIME_PER_TRACK;             if(abs(point[j].sector - point[j - 1].sector) < 180){ 				sumSector += abs(point[j].sector - point[j - 1].sector) * TIME_PER_SECTOR; 			} else{ 				sumSector += (360 - abs(point[j].sector - point[j - 1].sector)) * TIME_PER_SECTOR; 			} 			sumRead += 10;         } 		         if(abs(point[number].sector - point[0].sector) < 180){ 			sumSector += abs(point[number].sector - point[0].sector) * TIME_PER_SECTOR; 		} else{ 			sumSector += (360 - abs(point[number].sector - point[0].sector)) * TIME_PER_SECTOR; 		} 		sum = sumTrack + sumSector + sumRead; 		printf("%d\n", sum);     } 	 	printf("%d", sum); 	return 0; }

user: user-5
content: scanf("%d%d",gd[j],sq[j]); 这可能是最致命的错误。

user: user-6
content: = =哥哥。。请多刷几道题。。。