现象:同一段代码,使用gets函数获得字符串,OJ系统判定为正确;使用scanf获取字符串,OJ系统盘判定为错误。
题目:编写函数fun,其功能是将字符串s下标为奇数的字符删除,字符串中剩余字符形成的新字符串放在数组t中。
主函数中输入字符串s,调用函数,输出字符数组t。
输入说明:共一行,输入字符串s
输出说明:共一行,输出字符串t
输入示例:abcd1234
输出示例:ac13
背景:用的是西电的C语言OJ,平台似乎很老了,标准也是旧的,不知道是不是因为旧才出问题
#include<stdio.h>
#include<string.h>
void fun(char a[]){//思路就是先将字符串存入a数组,选取下标奇数的元素存入b数组,然后输出。
char b[100];
int i,m=strlen(a);
for(i=0;i<m;i++){
if(i%2==0){
b[i/2]=a[i];
}
}
m=strlen(b);
for(i=0;i<m;i++){
printf("%c",b[i]);
}
}
int main(){
char a[100];
gets(a);//问题就在这里,使用gets语句OJ给100,使用下一行的scanf语句OJ给0分
//scanf("%s",a);
fun(a);
return 0;
}
运行结果其实都一样,但是用scanf的话OJ不给分
思路上边写了,就是先将字符串存入a数组,选取下标奇数的元素存入b数组,然后输出。
请帮帮我吧,刚上大学,头一次学编程,懵逼的一批。