-
你错了:if(k<=n 2) printf("%s",s[k+n/2]);
如果 k=n 2 k+n 2=n 数组下标越界。
而且你的扫描中没有&
另外,人们说保险的要点比20个字多,比如21个,不能恰到好处,否则容易出错。
#include
#include
int main()
int i,j,k,n,n;
char str[22];
char s[100][22];
scanf("%d",&n);
for(i=0;iscanf("%d",&n);
scanf("%s",&str);
for(j=0;jscanf("%s",&s[j]);
for(k=0;kif(strcmp(str,s[k])==0)if(kelse printf("%s",s[k-n/2]);
return 0;
-
实际上,你的 if(k<=n 2) printf("%s",s[k+n/2]);
else printf("%s",s[k-n/2]);这一段是有问题的。
如果这样写,就会出现这样一种情况,当只有四个人的时候,再标记第二个人称,按你的**,即s[2+2]=s[4]已经出界了。
如果你这样写,那就好了:if(i>=(n 2)) printf("%s",player[i-(n/2)])
else printf("%s",player[i+(n/2)])
-
#include#include
int main()
int i,j,k,n,n;
char str[22];
char s[100][24];
scanf("%d",&n);
for(i=0;iscanf("%d",&n);
scanf("%s",str);
for(j=0;jscanf("%s",s[j]);
for(k=0;kif(strcmp(str,s[k])==0)if(k<=n/2-1) printf("%s",s[k+n/2]);
else printf("%s",s[k-n/2]);
return 0;
下面的满意好像是不对的吧,字符串不是没有加禁字吗? 事实上,你没有掌握关键条件。
-
#include ""
void main()
int i,n,m,j=0,t,y;
scanf("%d",&n);
while(n--)
printf("%d %ld",y,a[m-2]);
for(i=0;ia[j+1])
for(j=0;ja[j+1])
下标溢出数组。
此外,要获得下一个最大值,您只需要对其进行两次排序。
-
在每个问题的底部都有一个提交,即提交**,您应该注意提交时选择的语言。
-
1. 先注册账号,登录,选择你想做的主题,点击“提交”提交**
-
在此页面,填写用户信息、用户名、密码、邮箱等,点击注册即可完成注册
-
如果你删除了这句话,你可以通过OJ测试,如果你自己测试,文件应该建立在程序的源文件中,或者应该改变路径。
c:\\
我新组装的电脑配置:CPU i5 2310,(四核)主板微星H61M,内存金士顿DDR3 4G,硬盘希捷1TG显卡明鑫GT430显存2G总线宽128位光驱飞利浦烧录电源大水牛450w加飞利浦19液晶惠普键盘和鼠标低音炮喇叭共4200元。 卢师傅在性能测试中考出3950分,被授予“**奖章”。 >>>More