鱼C论坛

 找回密码
 立即注册
查看: 4168|回复: 11

[已解决]大佬们看看,为啥我这个程序运行一行就结束了啊啊啊啊

[复制链接]
发表于 2022-10-4 10:59:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 清如许 于 2022-10-4 11:01 编辑
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         char name;
  5.         int length,weight;
  6.         double foreign_length,foreign_weight;
  7.         foreign_length=length*0.3937;
  8.         foreign_weight=weight*2.2046;

  9.         printf("-----您好,欢迎使用能转化系统!------\n");//运行到这里就结束力。。。。555555
  10.         printf("请输入以下信息:\n");

  11.         printf("姓名:");
  12.         scanf("%s\n",name);

  13.         printf("身高:");
  14.         scanf("%d\n",&length);

  15.         printf("体重:\n");
  16.         scanf("%d\n",&weight);

  17.         printf("-----请稍后,正在进行转化-----\n");

  18.         printf("你的身高转化成功:%.3f\n",foreign_length);
  19.         printf("你的体重转化成功:%.3f\n",foreign_weight);
  20.        
  21.         return 0;
  22. }
复制代码
最佳答案
2022-10-4 11:20:26
清如许 发表于 2022-10-4 11:11
意思是不同的变量名存储空间不一样吗?

在中文版Windows系统中,使用的编码是ANSI,也就是GBK编码,在GBK编码中,一个中文字符占2个字节,256字节够你存入127个中文字符
在Linux中,使用的是utf-8编码,在utf-8编码中,一个中文字符占3个字节,256字节够你存入85个中文字符
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-10-4 11:00:26 | 显示全部楼层
还有一个问题,我想用scanf输入一个中文名,要咋整啊?char的空间是不是不够啊,请教各位了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-4 11:01:30 | 显示全部楼层


scanf 中去掉 \n 试试看:

  1. #include <stdio.h>
  2. int main()
  3. {
  4.         char name;
  5.         int length,weight;
  6.         double foreign_length, foreign_weight;
  7.         foreign_length = length * 0.3937;
  8.         foreign_weight = weight * 2.2046;
  9.         printf("-----您好,欢迎使用能转化系统!------\n");
  10.         printf("请输入以下信息:\n");
  11.         printf("姓名:");
  12.         scanf("%s", name);
  13.         printf("身高:");
  14.         scanf("%d", &length);
  15.         printf("体重:\n");
  16.         scanf("%d", &weight);
  17.         printf("-----请稍后,正在进行转化-----\n");
  18.         printf("你的身高转化成功:%.3f\n", foreign_length);
  19.         printf("你的体重转化成功:%.3f\n", foreign_weight);

  20.         return 0;
  21. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-10-4 11:06:42 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-4 11:09 编辑
  1.         char name[256] ;  // name 要定义成数组
  2.         scanf("%d" , &length) ;   // "%d" 后面不要加 '\n',所有的 scanf() 都有同样的问题
复制代码

        name 的存储空间足够大,中文字符随便输
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-4 11:08:47 | 显示全部楼层
Twilight6 发表于 2022-10-4 11:01
scanf 中去掉 \n 试试看:

不行哇大佬,还是输入一行数据就结束了55555
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-4 11:11:26 | 显示全部楼层
jackz007 发表于 2022-10-4 11:06
name 的存储空间足够大,中文字符随便输

意思是不同的变量名存储空间不一样吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-4 11:13:21 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-4 11:14 编辑
清如许 发表于 2022-10-4 11:11
意思是不同的变量名存储空间不一样吗?


         变量名和存储内容毫无关系,和存储空间的大小有关系。
         Windows 下一个西文字符占用 1 个 char,一个中文字符占用 2 个 char,Linux 下一个西文字符占用 1 个 char,一个中文字符占用 3 个 char。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-4 11:14:54 | 显示全部楼层
清如许 发表于 2022-10-4 11:11
意思是不同的变量名存储空间不一样吗?

char是字符,不是字符串
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-4 11:20:26 | 显示全部楼层    本楼为最佳答案   
清如许 发表于 2022-10-4 11:11
意思是不同的变量名存储空间不一样吗?

在中文版Windows系统中,使用的编码是ANSI,也就是GBK编码,在GBK编码中,一个中文字符占2个字节,256字节够你存入127个中文字符
在Linux中,使用的是utf-8编码,在utf-8编码中,一个中文字符占3个字节,256字节够你存入85个中文字符
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-4 11:23:27 | 显示全部楼层
临时号 发表于 2022-10-4 11:20
在中文版Windows系统中,使用的编码是ANSI,也就是GBK编码,在GBK编码中,一个中文字符占2个字节,256字节够你 ...

哦哦,谢谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-4 11:23:59 | 显示全部楼层
jackz007 发表于 2022-10-4 11:13
变量名和存储内容毫无关系,和存储空间的大小有关系。
         Windows 下一个西文字符占用 ...

哦哦,谢谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-4 11:25:04 | 显示全部楼层
jackz007 发表于 2022-10-4 11:06
name 的存储空间足够大,中文字符随便输

大佬,去掉\n也不行啊,只能运行一行。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 07:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表