题目:编写函数fun,其功能是将字符串s下标为奇数的字符删除,字符串中剩余字符形成的新字符串放在数组t中。
主函数中输入字符串s,调用函数,输出字符数组t。
输入说明:共一行,输入字符串s
输出说明:共一行,输出字符串t
输入示例:abcd1234
输出示例:ac13
#include
#include
void fun(char a[]){//思路就是先将字符串存入a数组,选取下标奇数的元素存入b数组,然后输出。
char b[100];
int i,m=strlen(a);
for(i=0;iif(i%2==0){
b[i/2]=a[i];
}
}
m=strlen(b);
for(i=0;iprintf("%c",b[i]);
}
}
int main(){
char a[100];
gets(a);//问题就在这里,使用gets语句OJ给100,使用下一行的scanf语句OJ给0分
//scanf("%s",a);
fun(a);
return 0;
}
望采纳!!!
scanf("%c",&a)
输入语句用scanf("%[^\n]", a);试试,另fun()函数里做了修改,改动处见注释,供参考:
#include<stdio.h>
#include<string.h>
void fun(char a[]){//思路就是先将字符串存入a数组,选取下标奇数的元素存入b数组,然后输出。
char b[100];
int i,m=strlen(a),j=0;//修改
for(i=0;i<m;i++){
if(i%2==0){
b[j++]=a[i]; //b[i/2]=a[i]; 修改
}
}
b[j]='\0'; //修改
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("%[^\n]", a);//scanf("%s",a); //修改
fun(a);
return 0;
}
scanf从键盘输入的是字符,并非字符串,而你用%s接收