关于#c++#的问题,请各位专家解答!

https://xjoi.net/problem/1176

#include 
#include 
#include  
using namespace std;

int main()
{
    int n,m,r;
    scanf("%d %d %d",&n,&m,&r);
    r *= 2;
    int nums = (n / r) * (m / r);
    char* s;
    if(nums % 2 == 1)     s = "Alice win";
    else    s = "Bob win";
    printf(s);
    return 0; 
}

这里有哪里错了?

img

img

字符串 要赋值给 char指针,那它需要时 const 修饰的,如下:


#include <cstdio>
#include <cstdlib>
#include <iostream> 
using namespace std;
 
int main()
{
    int n,m,r;
    scanf("%d %d %d",&n,&m,&r);
    r *= 2;
    int nums = (n / r) * (m / r);
    const char* s; // 修改为 const 修饰
    if(nums % 2 == 1)     s = "Alice win";
    else    s = "Bob win";
    printf(s);
    return 0; 
}

能否发出题目,点进去看不了

我的问题,刚才没看清楚就瞎定论了。关于这道题目你的解法没问题,但是指针用错了,你的指针刚开始并未初始化,如果你的指针所指地址的值也是一个char常量或者非法区域,那么你将不能对他进行二次赋值,如果你还是想用指针进行下面的操作,你应该引进一个字符串数组,将指针指向数组,即可进行二次赋值。