runsun的编程学习日志-004

这篇博客介绍了C语言中使用scanf进行输入及注意事项,包括如何读取多个数值和字符,强调了输入格式的重要性。同时讲解了putchar和printf的区别,并提供了将大写字母转换为小写字母的代码示例。还展示了两个简单的C语言练习,分别是数值运算和字符替换。
摘要由CSDN通过智能技术生成

0008scanf输入

scanf(格式控制,地址列表)

&:地址符号例如scanf("a=%f,b=%f,c=%f",&a,&b,&c)

int data;
    printf("请输入一个整数:\n");
    scanf("%d",&data);
    printf("输入完毕\n");
    printf("你输入的数据是%d\n",data);
    return 0;

结果:

一定要在data前面加&,否则无法执行

避坑点:例如sanf("data=%d",data);时

在执行程序时,需要手动输入“data=”后输入数字再回车,就是说要输入相同的内容才能执行否则直接输入数据data最后显示的数据为0,所以千万不要在scanf的格式控制中间加任何字符。但中间加空格是支持的。且不要加\n.

需要输入多个数据时,如scanf("%d%d%d",&data1,&data2,&data3);在执行程序时,每输入一个数据需要回车一次,直到全部输入完成,或者空格。

尽量分开写

0009scanf混合输入

    char data1;
    char data2;
    char data3;
    
    printf("请输入三个字符\n");
    scanf("%c%c%c",&data1,&data2,&data3);
    printf("您输入的数据是:data1=%c,data2=%c,data3=%c",data1,data2,data3);
    return 0;

输入字符时不能有空格,因为空格也被视为字符。

混合输入:

    int Int;
    char Char;
    float Float;
    printf("请依次输入整数,字符和小数\n");
    scanf("%d%c%f",&Int,&Char,&Float);
    printf("您输入的数据是:Int=%d,Char=%c,Float=%f",Int,Char,Float);

结果

 一定要注意中间不要有任何空格,系统会按顺序自动识别类型,而且系统默认只能识别一个字符,多写了会出错。

 一般建议分开写,不要混合写

0010putchar

    char c;
    puts("请输入一个字符");
    c = getchar();
    puts("你输入的符是");
    putchar(c);

puts跟printf区别

1.自动加入换行符2.printf支持多种类型输出puts只能输出字符串 

0011练习

1.实现在键盘上按大写字母,显示出小写字母。

ASCII码表

    char a = 'a';
    char b = 'b';
    char A = 'A';
    char B = 'B';
    
    printf("%c,%c,%c,%c\n",a,b,A,B);
    printf("a=%d,b=%d,A=%d,B=%d\n",a,b,A,B);
    
    puts("请输入一个大写字母");
    scanf("%c",&a);
    printf("对应的小写字母是%c\n",a+32);
    printf("测试");
    getchar();   //吸收回车符,来源于scanf("%c",&a);。当多次连续scanf获取字符串时候,要注意回车符
    putchar(getchar()+32);
    return 0;

 

0012初始c练习

1.输入两个数,获得两个数加减乘除的值

源代码:

#include <stdio.h>
int main()
{
    int data1;
    int data2;
    float data3;
    float data4;
    
    puts("请输入两个整数:");
    scanf("%d%d",&data1,&data2);
    printf("输入的两个数是:data1=%d,data2=%d\n",data1,data2);
    printf(">>>两数之和是%d\n",data1+data2);
    printf(">>>两数之差是%d\n",data1-data2);
    printf(">>>两数之积是%d\n",data1*data2);
    printf(">>>两数之比是%f\n",(float)data1/data2);
    
    puts("请输入两个小数:");
    scanf("%f%f",&data3,&data4);
    printf("输入的两个数是:data3=%f,data4=%f\n",data3,data4);
    printf(">>>两数之和是%f\n",(float)data3+data4);
    printf(">>>两数之差是%f\n",(float)data3-data4);
    printf(">>>两数之积是%f\n",(float)data3*data4);
    printf(">>>两数之比是%f\n",(float)data3/data4);
    return 0;
}

效果:

 

2.将“China”译成密码,密码的规律是:用原来的字母后面第4个字母代替原来的字母。例如字母A用E替代,因此,“China”译成“Glmre”。请写一个程序,用赋初值的方法使得c1,c2,c3,c4,c5这5个变量的值为C,h,i,n,a,经过运算,c1,c2,c3,c4,c5的值分别变为G,l,m,r,e。分别用putchar和printf输出这5个字符。

第一次运行不成功:

    char c1 = 'C';
    char c2 = 'h';
    char c3 = 'i';
    char c4 = 'n';
    char c5 = 'a';
    printf("原码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);
    printf("译码是%c%c%c%c%c\n",c1+4,c2+4,c3+4,c4+4,c5+4);
    putchar(c1+4,c2+4,c3+4,c4+4,c5+4);
    return 0;

 错误原因如下:

 putchar里面只能放一个参数,输出一个字符。

修改错误:

    char c1 = 'C';
    char c2 = 'h';
    char c3 = 'i';
    char c4 = 'n';
    char c5 = 'a';
    printf("原码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);
    printf("译码是%c%c%c%c%c\n",c1+4,c2+4,c3+4,c4+4,c5+4);
    putchar(c1+4);
    putchar(c2+4);
    putchar(c3+4);
    putchar(c4+4);
    putchar(c5+4);
    return 0;

结果:

 

加油,初识c已学完

今日思考,每次都要手写基本框架,能不能在notepad++中设置快捷键直接敲出基本框架呢?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

run sun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值