m0_56197713 2021-05-19 00:06 采纳率: 100%
浏览 87
已采纳

c语言scanf函数中输入两个%c类型变量报错

比如扑克牌的tjqka,想将其转换为10,11,12,13,14

这样写哪里出问题了?vs总是报错,并且如果只使用a1一个变量则不报错,加上b1了以后就会报错

#include<stdio.h>
char a1, b1;    a1为数值,b1为花色  花色姑且用csdh四种表示
int main()
{
	scanf_s("%c%c", &a1, &b1);
	if (a1 >= 97)	//发牌为tjqka时候转换为数字
	{
		if (a1 == 116)	//t转换为10
		{
			(int)a1;
			a1 = 10;
		}
		if (a1 == 106)	//j转换为11
		{
			(int)a1;
			a1 = 11;
		}
		if (a1 == 113)	//q转换为12
		{
			(int)a1;
			a1 = 12;
		}
		if (a1 == 107)	//k转换为13
		{
			(int)a1;
			a1 = 13;
		}
		if (a1 == 97)	//a转换为14
		{
			(int)a1;
			a1 = 14;
		}
		printf("数值为%d,花色为%c", a1, b1);
		return 0;
	}

这样无法运行

只输入一个变量则可以运行

#include<stdio.h>
char a1, b1;
int main()
{
	scanf_s("%c", &a1);    //删去了b1
	if (a1 >= 97)	//发牌为tjqka时候转换为数字
	{
		if (a1 == 116)	//t转换为10
		{
			(int)a1;
			a1 = 10;
		}
		if (a1 == 106)	//j转换为11
		{
			(int)a1;
			a1 = 11;
		}
		if (a1 == 113)	//q转换为12
		{
			(int)a1;
			a1 = 12;
		}
		if (a1 == 107)	//k转换为13
		{
			(int)a1;
			a1 = 13;
		}
		if (a1 == 97)	//a转换为14
		{
			(int)a1;
			a1 = 14;
		}
		printf("数值为%d,花色为", a1);
		return 0;
	}
}

 

  • 写回答

2条回答 默认 最新

  • 爱晚乏客游 2021-05-19 00:35
    关注

    scanf_s格式错误了,这个和scanf多个一个参数。详情可以看看https://blog.csdn.net/qq_43309823/article/details/95386759

    scanf_s("%c%c", &a1,1, &b1,1);
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器