m0_65875819 2022-05-08 18:23 采纳率: 84.6%
浏览 10
已结题

声明变量顺序有什么要求呢?

#include
#include
#include <string.h>

using namespace std;

void str_bin(char s1[], char s2[]);
int main()
{
char s1[100];
char s2[100];
cin>>s1;
cin>>s2;
int m = strlen(s1);
int n = strlen(s2);

str_bin(s1, s2);

for( int i = 0; i < m + n - 1; i++)
{
    for( int j = 0; j < m + n - 1 - i; j++)
    {
        if(s1[j] > s1[j + 1])
        {
            char temp = s1[j];
            s1[j] = s1[j + 1];
            s1[j + 1] = temp;
        }
    }
}
 for( int i = 0; i < m + n; i++)
    cout<<s1[i];

return 0;
}
void str_bin(char s1[], char s2[])
{
strcat(s1, s2);
}

为什么int m,n放在cin前面输出结果是不对的,必须放在后面呢?声明变量的顺序有什么要求吗?

  • 写回答

3条回答 默认 最新

  • 柒号华仔 2022年度博客之星评选前沿技术领域TOP 1 2022-05-08 18:44
    关注

    与变量声明顺序无关,而是与cin和strlen的顺序有关,只有cin为s1和s2读取字符串后,m= strlen(s1)和n = strlen(s2)才不为0,后面for循环才能正常运行。如下即可,m,n声明在cin之前:

    int m,n;
    cin>>s1;
    cin>>s2;
    m = strlen(s1);
    n = strlen(s2);
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装