题目二 字符

描述

会说浮点数之后,牛牛开始尝试字符

输入一个字符,输出这个字符。

输入描述:

输入一个字符,范围在ascii范围内

输出描述:

输出这个字符

作答

#include <stdio.h>
int main()
{
    char a[]={''};  //创建一个变量a 并将' '字符常量赋值给a  注释1
    scanf("%s\n",a);  //输入一个字符串赋值给a 注释2    
    printf("%s\n",a); //将a用字符串输出  注释3
    return 0;
}

问题一   注释1

''引号里至少含有一个字符 正确:'  '

解决问题后的代码

#include <stdio.h>
int main()
{
    char a[]={'1','4'};  //创建一个变量a 并将' '字符常量赋值给a  注释1
    scanf("%s\n",a);  //输入一个字符串赋值给a 注释2    
    printf("%s\n",a); //将a用字符串输出  注释3
    return 0;
}

问题二  注释1

建立数组是应该输入向内存申请空间的大小 不输入就会自动根据数据申请 从而可能导致内存溢出使程序出错

内存溢出:内存溢出是指程序在运行过程中,分配给程序的内存超出了计算机系统的可用内存,导致程序无法继续运行,出现崩溃或异常。

问题三 注释2

vs中  scanf输入函数不要输入换行转义字符\n,不然程序输出要输入两次数据

解决问题后的代码

#include <stdio.h>
int main()
{
    char a[30]={'1','4'};  //创建一个变量a 并将' '字符常量赋值给a  注释1
    scanf("%s",a);  //输入一个字符串赋值给a 注释2    
    printf("%s\n",a); //将a用字符串输出  注释3
    return 0;
}

衍生问题

 %c是用来打印字符 为什么以下代码不行?

#include<stdio.h>
int main()
{
	char a[] = { '1','2' };
	printf("%c\n", a);
	return 0;
}

解答:%c 格式说明符只能输出一个字符,因此在循环中需要使用多个 %c 来输出多个字符。

正确代码 

#include <stdio.h>
int main()
{
    char a[] = { '1','4'}; 
    /*scanf("%s", a);*/ 
    int i = 0;
    while (i<2)
    {
        printf("%c\n", a[i]);
        i++;
    }

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值