鱼C论坛

 找回密码
 立即注册
查看: 1467|回复: 8

[已解决]s1e11课后题疑问

[复制链接]
发表于 2018-10-23 22:29:41 | 显示全部楼层 |阅读模式
5鱼币
论坛的各位老师们幸苦了,可以帮忙解答一下这3个问题吗?谢谢老师~~
1.原题:请将下边代码用 Steve Bourne 大神的方法改写出来
#include <stdio.h>

int main()
{
        int i;

        printf("请输入您的年龄:");
        scanf("%d", &i);

        if (i < 18)
                printf("您未满18周岁,不得使用这个程序!\n");
        else
                printf("您已满18周岁,欢迎使用本程序,嘿嘿嘿...\n");

        return 0;
}
答案:
#include <stdio.h>

#define IF if(
#define THEN ){
#define ELSE }else{
#define FI ;}
#define INT int
#define BEGIN {
#define END }

INT main()
BEGIN
        INT i;

        printf("请输入您的年龄:");
        scanf("%d", &i);

        IF i < 18
        THEN
                printf("您未满18周岁,不得使用这个程序!\n");
        ELSE
                printf("您已满18周岁,欢迎使用本程序,嘿嘿嘿...\n");
        FI

        return 0;
END
这里FI的定义是;)请问‘;’的定义是不是多余的如果不是意义何在?
2.原题:
#include <stdio.h>

int main()
{
        int a, b, c, t;

        printf("请输入3个整数(使用空格隔开):");
        scanf("%d%d%d", &a, &b, &c);

        if (a > b)
        {
                t = a;
                a = b;
                b = t;
        }

        if (a > c)
        {
                t = a;
                a = c;
                c = t;
        }

        if (b > c)
        {
                t = b;
                b = c;
                c = t;
        }

        printf("%d %d %d\n", a, b, c);

        return 0;
}
这里小甲鱼老师做了两个图我实在没看出来它俩的内在区别是啥,没懂其中的原理。图片已经上传请老师详细解释一下 谢谢
3.原题:要求用户输入一个字符,如果是大写字母,将其转换为小写;如果是小写字母,将其转换为大写;其他字符不做处理,并输出结果。
答案:
#include <stdio.h>

int main()
{
        char ch;

        printf("请输入一个字符:");
        scanf("%c", &ch);

        if (ch >= 'A' && ch <= 'Z')
        {
                ch = ch + 32; // ch加32,变成小写,然后赋值回ch
        }
        else if (ch >= 'a' && ch <= 'z')
        {
                ch = ch - 32; // 同上
        }

        printf("%c\n", ch);

        return 0;
}
这里有我想问如果要求用户输入一串字符把这一串字符里的大写字母,转换为小写;小写字母,转换为大写那该怎么改呢?本鱼油新手一枚实在是想不到啊 求老师带飞。

               
最佳答案
2018-10-23 22:29:42
第三个问题:
#include<stdio.h>

int main()
{
        char ch;
        
        printf("请输入一串字符:");
        ch = getchar();
        while(ch != '/n')
        {
                if(ch >= 'A' && ch <= 'Z')
                        ch = ch + 32;
                else if(ch >= 'a' && ch <= 'z')
                        ch = ch - 32;
                else
                        ch = ch;
                
                putchar(ch);
                ch = getchar();
        }
        printf("\n");
        
        return 0;
}
121101f3misd4stsxuzpvp.png
045558m9fxxf4zf5k4gzyx.png

最佳答案

查看完整内容

第三个问题:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-23 22:29:42 | 显示全部楼层    本楼为最佳答案   
第三个问题:
#include<stdio.h>

int main()
{
        char ch;
        
        printf("请输入一串字符:");
        ch = getchar();
        while(ch != '/n')
        {
                if(ch >= 'A' && ch <= 'Z')
                        ch = ch + 32;
                else if(ch >= 'a' && ch <= 'z')
                        ch = ch - 32;
                else
                        ch = ch;
                
                putchar(ch);
                ch = getchar();
        }
        printf("\n");
        
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-10-23 22:36:49 | 显示全部楼层
再补一个问题,这个作图里面的箭头在哪呀?自己动手画吗?
S1]7KS)KWV2`3GS3EW@6OCB.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-24 09:48:08 | 显示全部楼层
本帖最后由 pheron 于 2018-10-24 09:53 编辑

第二题,第一个图就是程序上那样的,而第二个图,只要满足一个条件,例如a>b,直接执行完ab互换之后就输出了,而不会执行下边的程序。
第一个图是if,而第二个图是if...else

图片2对应的程序

图片2对应的程序

图片1对应的程序

图片1对应的程序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-24 10:01:46 | 显示全部楼层
Emmmmmm....
第一题的话不想说的,我感觉宏定义这样用很恶心。标点成对使用既能避免错误 又相对方便 而且所有人通用。
这样一宏定义,一不小心就会出现符号错误,然后还不好查找。打这么多字母哪有直接键入标点方便。最后这样写出来的程序只有自己能看了,别人看到会感觉很恶心,一行都懒得看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-10-24 11:24:02 From FishC Mobile | 显示全部楼层
pheron 发表于 2018-10-24 09:21
第三个问题:

这个代码我看不懂呀,是C++吧 老师可以用C改一下吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-10-24 11:26:31 From FishC Mobile | 显示全部楼层
pheron 发表于 2018-10-24 10:01
Emmmmmm....
第一题的话不想说的,我感觉宏定义这样用很恶心。标点成对使用既能避免错误 又相对方便 而且 ...

老师还想问一下小甲鱼老师推荐的那个软件,那个作图的箭头是哪一个呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-24 12:12:53 | 显示全部楼层
2268194521 发表于 2018-10-24 11:24
这个代码我看不懂呀,是C++吧 老师可以用C改一下吗?

这就是C呀。。。就是在你那个程序上改的。
getchar()是读取一个包括空字符在内的字符输入
putchar()是打印一个字符
基本的C函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2018-10-24 13:22:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-30 14:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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