PAT_L1-031. 到底是不是太胖了

本文介绍了一个简单的体重评估程序,该程序能够根据输入的身高和体重数据,判断个体的体型状况,并输出相应的评估结果。

据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 |真实体重-标准体重| < 标准体重x10%)。已知1市斤=0.5公斤。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。

输入格式:

输入第一行给出一个正整数N(<= 20)。随后N行,每行给出两个整数,分别是一个人的身高H(120 < H < 200;单位:厘米)和真实体重W(50 < W <= 300;单位:市斤),其间以空格分隔。

输出格式:

为每个人输出一行结论:如果是完美身材,输出“You are wan mei!”;如果太胖了,输出“You are tai pang le!”;否则输出“You are tai shou le!”。

输入样例:
3
169 136
150 81
178 155
输出样例:
You are wan mei!
You are tai shou le!
You are tai pang le!
#include<stdio.h>
#include<iostream>
#include<cstdio>
using namespace std;
double abs(double a,double b){
  if(a>=b)
   return (a-b);
  else return (b-a);
}


int main(){
  int n;
  double h,w;
  cin>>n;
  while(n--){
  cin>>h>>w;
  w=w*0.5;
  double sum;
  sum = (h - 100)*0.9;
  if(abs(sum,w)<0.1*sum)
  cout<<"You are wan mei!"<<endl;
  else if(abs(sum,w)>=0.1*sum&&(w>sum))
  cout<<"You are tai pang le!"<<endl;
  else if(abs(sum,w)>=0.1*sum&&(w<sum)) 
  cout<<"You are tai shou le!"<<endl;
}
    return 0;
} 


The command `cd kernel; /usr/bin/make -k -j4 NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/lib/modules/6.11.0-25-generic/build" SYSOUT="/lib/modules/6.11.0-25-generic/build" NV_KERNEL_MODULES="nvidia"` failed with the following output: make[1]: Entering directory '/usr/src/linux-headers-6.11.0-25-generic' ld -r -o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-interface.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-pci.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-dmabuf.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-nano-timer.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-acpi.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-cray.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-dma.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-i2c.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-mmap.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-p2p.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-pat.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-procfs.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-usermap.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-vm.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-vtophys.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/os-interface.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/os-mlock.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/os-pci.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/os-registry.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/os-usermap.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-modeset-interface.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-pci-table.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-kthread-q.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-memdbg.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-report-err.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-rsync.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-msi.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-caps.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-caps-imex.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv-host1x.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nv_uvm_interface.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_aead.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_ecc.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_hkdf.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_rand.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_shash.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_rsa.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_aead_aes_gcm.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_sha.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_hmac_sha.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_internal_crypt_lib.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_hkdf_sha.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_ec.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_x509.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/libspdm_rsa_ext.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nvlink_linux.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/nvlink_caps.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/linux_nvswitch.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/procfs_nvswitch.o /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia/i2c_nvswitch.o LD [M] /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia.o ld: /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia.o: final close failed: No space left on device make[3]: *** [scripts/Makefile.build:443: /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/nvidia.o] Error 1 make[3]: Target '/tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel/' not remade because of errors. make[2]: *** [/usr/src/linux-headers-6.11.0-25-generic/Makefile:1932: /tmp/selfgz6005/NVIDIA-Linux-x86_64-570.169/kernel] Error 2 make[2]: Target 'modules' not remade because of errors.
最新发布
06-29
### 错误信息分析 在执行 NVIDIA 内核模块编译时,出现如下错误: ``` The command cd kernel; /usr/bin/make -k -j4 NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/lib/modules/6.11.0-25-generic/build" SYSOUT="/lib/modules/6.11.0-25-generic/build" NV_KERNEL_MODULES="nvidia" failed with error: ld: final close failed: No space left on device ``` 该错误表明在链接(`ld`)阶段,由于**磁盘空间不足**导致操作失败。这是典型的构建过程中资源耗尽问,通常发生在 `/tmp` 或内核源码构建目录所在的文件系统上[^1]。 --- ### 可能原因与解决方法 #### 1. 磁盘空间不足 NVIDIA 驱动模块的编译过程会生成大量临时文件,尤其是在使用 `-j` 多线程并行编译时,临时文件体积可能迅速增长。请检查以下路径的可用空间: ```bash df -h / df -h /tmp df -h /var/lib/dkms ``` 若发现空间不足,可采取以下措施: - 清理不必要的日志和缓存文件: ```bash sudo apt-get clean sudo rm -rf /var/cache/apt/archives/* sudo rm -rf /tmp/* ``` - 将 `/tmp` 挂载为更大的 tmpfs 或使用符号链接指向具有足够空间的分区[^1]。 #### 2. 文件系统损坏或只读挂载 如果文件系统损坏或被挂载为只读,也可能导致 `ld` 无法写入出文件。可以尝试重新挂载相关分区为可写: ```bash sudo mount -o remount,rw /tmp ``` 并检查文件系统一致性: ```bash sudo fsck /dev/sdXn # 替换为实际设备名 ``` #### 3. 编译参数优化 减少并行编译线程数(即降低 `-j` 参数),例如从 `-j4` 改为 `-j1`,可以降低对磁盘 I/O 和临时空间的压力: ```bash cd kernel; /usr/bin/make -k -j1 NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/lib/modules/6.11.0-25-generic/build" SYSOUT="/lib/modules/6.11.0-25-generic/build" NV_KERNEL_MODULES="nvidia" ``` 此外,也可以通过设置环境变量 `TMPDIR` 指定更大的临时目录: ```bash export TMPDIR=/path/to/large/tmpdir ``` --- ### 补充建议 - 查看 `/var/lib/dkms/nvidia/<version>/build/make.log` 文件,获取更详细的编译日志,有助于定位具体出错位置。 - 若频繁遇到磁盘空间不足问,建议增加 `/` 分区或 `/tmp` 的容量,或者在安装前预留专门的构建空间。 - 如果系统运行在虚拟机中,确保分配了足够的磁盘空间,并启用动态扩展功能(如 VDI 格式支持)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值