m0_65875819 2022-05-08 10: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 10: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月15日
  • 已采纳回答 5月8日
  • 创建了问题 5月8日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部