水题,,就是输入有点纠结。。。 #include <cstdio> #include <algorithm> #include <cstring> #include <cstdlib> #include <iostream> #include <cmath> using namespace std; #define MAXN 6000 int judge(char *x,char *y) { int len = strlen(x); int count = 0; for(int i=0;i<len;i++) if(x[i]==' ') count++; return count+1; } int main(void) { double x[MAXN],y[MAXN]; double a[MAXN],b[MAXN]; double n; int i,count; char waste; int flag = 0; while(1) { i=0; while(scanf("(%lf,%lf)",&a[i],&a[i+1])!=EOF) { scanf("%c",&waste); i+=2; if(waste=='/n') { count = i; break; } } i=0; while(scanf("(%lf,%lf)",&b[i],&b[i+1])!=EOF) { x[i]=fabs(a[i]-b[i]); y[i]=fabs(a[i+1]-b[i+1]); scanf("%c",&waste); if(waste=='/n') break; i+=2; } if(scanf("%lf",&n)!=EOF) { count; double ans = 0.0; double tmp; for(int j=0;j<count;j++) { tmp = sqrt(x[j]*x[j]+y[j]*y[j]); ans+=pow(tmp,n); } printf("%.8lf/n",pow(ans,1.0/n)); getchar(); } else break; } return 0; }