程橙橙925 2023-01-16 18:44 采纳率: 0%
浏览 24

同一段代码用gets输入字符串是对的,而scanf就是错的,求解答。

现象:同一段代码,使用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数组,然后输出。
请帮帮我吧,刚上大学,头一次学编程,懵逼的一批。

img

  • 写回答

4条回答 默认 最新

  • Halifax ‎ 2023-01-16 19:38
    关注

    望采纳!!!

    scanf("%c",&a)

    评论

报告相同问题?

问题事件

  • 创建了问题 1月16日

悬赏问题

  • ¥15 esp32cam串口图传
  • ¥15 C# 用partial定义部分类无法快速预览代码
  • ¥15 fastreport 代码无法设置最后一页横线不显示
  • ¥15 stm32u535芯片usb hid custom类接收数据有问题
  • ¥15 ue5.3 pico打包失败 求帮助
  • ¥15 请教,这是用chatgpt写的CAD LISPD脚本,需求是画一个由双直线组成的矩形
  • ¥50 微信小程序 成功包奶茶啊
  • ¥15 计算机博弈的六子棋代码
  • ¥15 在Fetch API中传送的参数为何不起作用?
  • ¥15 问题遇到的现象和发生背景 360导航页面千次ip是20元,但是我们是刷量的 超过100ip就不算量了,假量超过100就不算了 这是什么逻辑呢 有没有人能懂的 1000元红包感谢费