sjql123 2021-08-31 01:54 采纳率: 100%
浏览 43
已结题

请问为什么这个程序在DVC++上可以正确跑出来,而在gcc上跑不出来

说反话PTA乙级1009

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输出格式:

每个测试用例的输出占一行,输出倒序后的句子。

#include<stdio.h>
#include<string.h>
int main()
{
    char word[81];
    int cnt[81] = {-1,0};//定义一个位置,方便求后期单个单词的长度
    int i,k = 0,count = 0;
    scanf("%[^\n]",word);

    for(i = 0;i < 81;i++){
        if(word[i] == ' ')
        {
            count++;
            cnt[count] = i;
            
        }
        if(word[i] == '\0')
        {
            count++;
            cnt[count] = i;
            break;
        }
    }
    int len[count];
    for(i = 0;i < count;i++){
        len[i] = cnt[i + 1] - cnt[i];
    }    

    char string[count - 1][81];//把字符串拆成几个小字符串
    for(i = 0;i < count;i++){
        int j = 0;
        for(j;j < len[i];j++){
            string[i][j] = word[k++];
            if(word[k] == ' ')
            {
                k++;
                string[i][j + 1] = '\0';
                break;
            }
        }
    }
    while(count--)
    {
        printf("%s%c",string[count],count?'\0':' ');
    }
    
    return 0;
}

输出结果:
DVC++:
img
gcc:
img

  • 写回答

1条回答 默认 最新

  • 关注
    scanf("%[^\n]",word);
    

    改成

    gets(word);
    

    printf("%s%c",string[count],count?'\0':' ');
    

    改成

    printf("%s%s",string[count],count?" ":"");
    

    img
    如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月8日
  • 已采纳回答 8月31日
  • 创建了问题 8月31日

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题