PAT_L1-015. 跟奥巴马一起画方块

美国总统奥巴马不仅呼吁全民学习编程,还亲自编写代码,成为美国历史上首位编写计算机代码的总统。为了庆祝“计算机科学教育周”,奥巴马编写了一个简单的程序,在屏幕上画出一个正方形。本文提供了一段C++代码示例,展示如何根据输入的边长和字符绘制正方形。

美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!

输入格式:

输入在一行中给出正方形边长N(3<=N<=21)和组成正方形边的某种字符C,间隔一个空格。

输出格式:

输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。

输入样例:
10 a
输出样例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
#include<stdio.h>
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
  double  m;
  double k,s;
  char ty;
  cin>>m;
  s=m;
  k=m/2;
  cin>>ty;
  for(int i=0;i<k;i++){
    for(int j=0;j<s;j++){
      printf("%c",ty);
    }
    printf("\n");
  }
} 


                
cc1: error: -Werror=date-time: no option -Wdate-time cc1: error: -Werror=date-time: no option -Wdate-time make[3]: CC [M] /tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-acpi.o *** [/tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv.o] Error 1 make[3]: *** [/tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-pci.o] Error 1 cc1: error: -Werror=date-time: no option -Wdate-time make[3]: *** [/tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-dmabuf.o] Error 1 CC [M] /tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-cray.o cc1: error: -Werror=date-time: no option -Wdate-time CC [M] /tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-dma.o cc1: error: -Werror=date-time: no option -Wdate-time CC [M] /tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-i2c.o make[3]: *** [/tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-nano-timer.o] Error 1 make[3]: *** [/tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-acpi.o] Error 1 cc1: error: -Werror=date-time: no option -Wdate-time make[3]: *** [/tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-cray.o] Error 1 CC [M] /tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-mmap.o cc1: error: -Werror=date-time: no option -Wdate-time make[3]: CC [M] /tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-p2p.o *** [/tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-dma.o] Error 1 cc1: error: -Werror=date-time: no option -Wdate-time make[3]: *** [/tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-i2c.o] Error 1 CC [M] /tmp/selfgz122201/NVIDIA-Linux-x86_64-550.90.12/kernel/nvidia/nv-pat.o
最新发布
06-06
### NVIDIA Linux 驱动编译时 -Werror=date-time 错误解决方案 在编译 NVIDIA 的 Linux 内核驱动程序时,可能会遇到与 `-Werror=date-time` 相关的错误。这种错误通常是因为 GCC 编译器将警告视为错误,并且检测到代码中存在与时间戳或日期相关的宏(如 `__DATE__` 或 `__TIME__`)。以下是对该问题的详细分析和解决方法[^1]。 #### 问题原因 GCC 编译器提供了 `-Wdate-time` 警告选项,用于标记源代码中使用了依赖于构建时间的时间戳宏(例如 `__DATE__` 和 `__TIME__`)。当启用 `-Werror` 选项时,这些警告会被提升为错误,从而阻止编译过程继续进行。NVIDIA 驱动程序的代码可能使用了这些宏,而某些 Linux 发行版的内核配置强制启用了 `-Werror=date-time`[^2]。 #### 解决方案 以下是几种常见的解决方法: 1. **禁用 `-Werror=date-time`** 可以通过修改内核的 Makefile 或编译选项来禁用 `-Werror=date-time`。具体操作如下: ```bash make KCFLAGS=-Wno-error=date-time ``` 这会告诉 GCC 忽略与日期和时间相关的警告[^3]。 2. **更新 GCC 编译器** 如果使用的 GCC 版本较旧,可以尝试升级到更高版本。较新的 GCC 版本对 `-Wdate-time` 的处理更为灵活,可能不会默认将其作为错误处理[^4]。 3. **修改 NVIDIA 源代码** 如果无法修改编译选项,可以选择直接编辑 NVIDIA 提供的源代码。查找并注释掉所有使用 `__DATE__` 和 `__TIME__` 宏的代码片段。这种方法需要对代码有深入了解,不推荐除非必要[^5]。 4. **调整内核配置** 某些情况下,内核配置文件中可能显式启用了 `-Werror`。可以通过重新配置内核来禁用该选项。运行以下命令检查和修改内核配置: ```bash make menuconfig ``` 在配置界面中搜索 `-Werror` 并将其禁用[^6]。 #### 示例代码 以下是一个示例,展示如何通过脚本自动添加编译选项以忽略 `-Werror=date-time`: ```bash #!/bin/bash # 修改 NVIDIA 驱动的 Makefile sed -i 's/\(EXTRA_CFLAGS\s*=\s*\)/\1-Wno-error=date-time /' Makefile # 开始编译 make ``` #### 注意事项 - 确保在修改任何系统文件之前备份原始文件。 - 如果不确定具体的编译选项来源,可以使用 `grep` 命令在整个项目目录中搜索 `-Werror=date-time`[^7]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值