洛谷P1428 小鱼比可爱
两组感觉没什么区别的代码
为什么前者会有第二组样例报错?
前者:
#include<stdio.h>
int main(){
int n;
int *pa;
scanf("%d\n",&n);
int a[n-1];
int x=0;
for(int i=0;i<=n-1;i++){
scanf("%d",&a[i]);
}
pa=&a[0];
for(int i=0;i<=n-1;i++){
int a=i;
for(int l=0;l<a;l++){
if(*(pa+l)<*(pa+a)){
x=x+1;
}
}
printf("%d ",x);
x=0;
}
return 0;
}
后者:
#include<stdio.h>
int main(){
int n;
int *pa;
scanf("%d\n",&n);
int a[n-1];
int x=0;
for(int i=0;i<=n-1;i++){
scanf("%d",&a[i]);
}
pa=&a[0];
for(int i=0;i<=n-1;i++){
for(int l=0;l<i;l++){
if(*(pa+l)<*(pa+i)){
x=x+1;
}
}
printf("%d ",x);
x=0;
}
return 0;
}
求问题出在哪?
两段代码没有区别,但共同问题就在第5行里,scanf("%d\n",&n); 输入语句里多了'\n' 符,应修改为:scanf("%d",&n);