不了了之[] 2023-03-30 13:13 采纳率: 100%
浏览 17
已结题

关于y+1与++y的疑问

以下是AC代码


#include<iostream>
using namespace std;
int a[100][100]={0};
int main(){
    int x,y,c1,c2,n=0;
    cin>>c1>>c2;
    n=a[x=0][y=0]=1;
    while(n<c1*c2){
        while(y+1<c2&&!a[x][y+1])a[x][++y]=++n;
        while(x+1<c1&&!a[x+1][y])a[++x][y]=++n;
        while(y-1>=0&&!a[x][y-1])a[x][--y]=++n;
        while(x-1>=0&&!a[x-1][y])a[--x][y]=++n;
    }
    for(int x=0;x<c1;x++){
        for(int y=0;y<c2;y++){
            printf("%d ",a[x][y]);
        }
        cout<<'\n';
    }
    return 0;
}

这一部分的数组中如果把y+1换成++y就会出错,想要请问他们的原理有什么不同(y+1和++y)
我记得两个都是先计算再使用

while(n<c1*c2){
        while(y+1<c2&&!a[x][y+1])a[x][++y]=++n;
        while(x+1<c1&&!a[x+1][y])a[++x][y]=++n;
        while(y-1>=0&&!a[x][y-1])a[x][--y]=++n;
        while(x-1>=0&&!a[x-1][y])a[--x][y]=++n;
    }

img

  • 写回答

3条回答 默认 最新

  • 花仙剑客 2023-03-30 13:54
    关注

    y+1 ,表达式的值+1,例如 y = 0, x=y+1,那么y=0,x=1,
    ++y ,相当于y=y+1, 例如 y = 0, x=++y,那么y=1,x=1。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的