关于c语言问题求解答,大家看一下

img


关于c语言问题求解答,大家看一下,可不可以大家教教我,要考试了

供参考:

#include <stdio.h>
void main()
{
    int a = 4, b = 3, c = 5, t = 0;
    if (a < b) t = a; // 4 < 5 不成立,所这句 t  = a; 未被执行
    a = b; // a = b = 3;
    b = t; // b = t = 0;
    if (a < c) t = a; // 3 < 5 成立,t = a = 3;
    a = c; // a = c = 5;
    c = t; // c = t = 3;
    printf("%d %d %d\n",a , b, c);// a = 5, b = 0, c = 3
}

这里因为没有花括号,所以只有第一个语句属于if
所以a=b后3 3 5 0 b=t后 3 0 5 0,然后交换ac 5 0 3。

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7722357
  • 这篇博客你也可以参考下:作业优先调度算法 先来先服务、短作业调度算法(c语言描述)
  • 除此之外, 这篇博客: (C语言)一直接收键盘字符, 如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出。中的 一直接收键盘字符, 如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 编译环境VS2017

    编写一个程序,可以一直接收键盘字符,
    如果是小写字符就输出对应的大写字符,
    如果接收的是大写字符,就输出对应的小写字符,
    如果是数字不输出。

    char word[1] = "0";
    

    题目中从键盘接收字符,可以定义一个字符类型,这里定义只有一个元素的字符数组是因为考虑到要进行大小写转换,调用函数strlwr()和strupr()这两个函数。
    strlwr()函数作用是将字符串中的大写字母转换为小写
    strupr()函数作用是将字符串中的小写字母转换为大写
    strlwr()和strupr()是对字符串的操作函数,函数参数要为char*类型

    因为程序要可以一直从键盘接受字符进行转换,这是一个重复的操作,可以用循环来实现
    这里我们用while(1)来实现无限循环

    while(1) {
    }
    

    getch():所在头文件:conio.h
    函数用途:从控制台读取一个字符,但不显示在屏幕上
    当输入一个字符时getch()函数会直接读取,然后代码往下执行,避免了一次输入多个字符
    getchar()函数
    功 能: 从stdin流中读字符
    用 法: int getchar(void);
    需要注意的是:getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.
    getch()与getchar()基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上。

    getchar()如果在此问题中会出现如下状况:

    word[0]=getchar();
    

    在这里插入图片描述

    所以我们可以用getch()代替getchar(),具体实现如下:

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<conio.h>
    void main() {
    	printf("请输入一个英文字符\n");
    	while (1) {
    		char word[1] = "0";
    		word[0]=_getch();
    		if (word[0] > 47 && word[0] < 58) {
    			printf("%c\n", word[0]);
    			printf("请输入一个英文字符\n");
    			continue;
    		}
    		else if (word[0] > 64 && word[0] < 91)//大写字母
    		{
    			printf("%c\n", word[0]);
    			_strlwr(word);
    			printf("转化后字符为%c\n", word[0]);
    			continue;
    		}
    		else if (word[0] > 96 && word[0] < 123)//小写字母
    		{
    			printf("%c\n", word[0]);
    			 _strupr(word);
    			printf("转化后字符为%c\n", word[0]);
    			continue;
    		}
    	}
    	system("pause");
    }
    

    在这里插入图片描述

  • 您还可以看一下 朱有鹏老师的C语言复杂表达式与指针应用视频精讲-C语言专题第4部分课程中的 4.4.3.函数指针实战1小节, 巩固相关知识点