楠楠宝贝吖 发表于 2020-10-18 00:48:55

运行

#include"stdio.h"
void main()
{
        char a; int b; float c;
        a=getchar();
        putchar(a);
        putchar('\t');
        putchar(a>='a'&&a<='z'?a-32:a);
        putchar('\n');
        getchar();
        scanf("%c%d%f",&a,&b,&c);
        printf("a=%cb=%d c=%.2f\n",a,b,c);
        getchar();
        scanf("a=%cb=%dc=%f",&a,&b,&c);
        printf("a=%d b=%c c=%.2f\n",a,b,c);
}
输入: a ↙
输入: b □65 □3.141592613↙
输入: a=b □b=65 □c=3.141592613↙球球各位大佬运行一下这段代码,讲解一下这段代码,球球了!!!!


风过无痕1989 发表于 2020-10-18 02:01:40

本帖最后由 风过无痕1989 于 2020-10-18 02:03 编辑

你所要的解释,全部在注释里了


#include<stdio.h>// 错误! stdio.h 是系统自带的头函数,要用尖括号,不能用引号
void main()
{
      char a;                            // 定义一个字符变量 a
        int b;                           // 定义一个整型变量 b
        float c;                           // 定义一个浮点型变量 c
      a = getchar();                     // 接收一个字符,并赋给变量 a
      putchar(a);                        // 输出字符
      putchar('\t');                     // 输出一个制表符的间隔
      putchar(a>='a'&& a<='z'? a-32:a);// 如果变量 a 贮存的字符是小写字母,转换成大写字母
      putchar('\n');                     // 输出一个回车(即换一行)
      getchar();                         // 等待接收一个字符
      scanf("%c%d%f",&a,&b,&c);          // 这才是scanf()的正确用法
      
        // 输出字符a = a(贮存的字符) 输出整数b = b(贮存的数值) 保留两位小数输出浮点数c = c(贮存的数值)\n 是换行
        printf("a = %c b = %d c = %.2f\n",a,b,c);
      getchar();
   
        // 此语句错误!scanf()不能这么用,除控制符外不能加入任何字符,否则会出错
        scanf("a=%cb=%dc=%f",&a,&b,&c);
      
        // 输出字符a的ASCII码a = a(贮存的字符) 输出b的ASCII码字符b = b(贮存的数值) 保留两位小数输出浮点数c = c(贮存的数值)\n 是换行
        printf("a = %d b = %c c = %.2f\n",a,b,c);
}

/*输入: a ↙
输入: b □65 □3.141592613↙
输入: a=b □b=65 □c=3.141592613↙*/


楠楠宝贝吖 发表于 2020-10-18 11:00:20

本帖最后由 楠楠宝贝吖 于 2020-10-18 11:05 编辑

风过无痕1989 发表于 2020-10-18 02:01
你所要的解释,全部在注释里了

您能给我一份正确的嘛?书上就是这么写的,小白表示很蒙蔽呀

风过无痕1989 发表于 2020-10-18 11:20:29

楠楠宝贝吖 发表于 2020-10-18 11:00
您能给我一份正确的嘛?书上就是这么写的,小白表示很蒙蔽呀

在程序里呀,你点那个复制代码,就可以粘贴到你的编译软件里去了呀

你还可以粘贴到文本文件.txt 或 WORD.docx 或 WORD.doc 里去呀,将它们打印出来

乐乐学编程 发表于 2020-10-18 22:17:45

楠楠宝贝吖 发表于 2020-10-18 11:00
您能给我一份正确的嘛?书上就是这么写的,小白表示很蒙蔽呀

你是怀疑书上的写错了?

楠楠宝贝吖 发表于 2020-10-19 16:20:26

乐乐学编程 发表于 2020-10-18 22:17
你是怀疑书上的写错了?

真的,上面他说scanf函数不对,但是书上就那么写的’

楠楠宝贝吖 发表于 2020-10-19 16:21:03

风过无痕1989 发表于 2020-10-18 11:20
在程序里呀,你点那个复制代码,就可以粘贴到你的编译软件里去了呀

你还可以粘贴到文本文件.txt 或 WO ...

好的

风过无痕1989 发表于 2020-10-19 17:38:18

楠楠宝贝吖 发表于 2020-10-19 16:20
真的,上面他说scanf函数不对,但是书上就那么写的’

scan函数写成这样:scanf("a=%cb=%dc=%f",&a,&b,&c) 当然是不行的哪

风过无痕1989 发表于 2020-10-19 17:39:32

楠楠宝贝吖 发表于 2020-10-19 16:21
好的

对于这个求助,没有什么问题了就给个最佳答案吧,其他的问题,咱们其他再说,好吗?

乐乐学编程 发表于 2020-10-19 23:19:51

楠楠宝贝吖 发表于 2020-10-19 16:20
真的,上面他说scanf函数不对,但是书上就那么写的’

你的程序里有两个 scanf() 函数,第一个是正确的,第二个是错误的,2楼的朋友已经在注释里给了你正确的解答,还有什么不明白的呢?

楠楠宝贝吖 发表于 2020-10-20 16:24:28

风过无痕1989 发表于 2020-10-19 17:38
scan函数写成这样:scanf("a=%cb=%dc=%f",&a,&b,&c) 当然是不行的哪

那应该是怎么写呀?

风过无痕1989 发表于 2020-10-20 20:29:03

楠楠宝贝吖 发表于 2020-10-20 16:24
那应该是怎么写呀?

scanf("%c%d%f%lf",&a,&b,&c,&d);

%c 是输入字符,%d 是输入数字,%f 是输入浮点数(float 型),%lf 是输入双精度数字(double 型,注意:f 前面的是大写字母 L 的小写字母,而不是数字 1)
页: [1]
查看完整版本: 运行