• 寒假作业二之代码题


    编程题

    github链接

    用c语言完成以下题目

    1001.A+B Format(20)

    • 注册该网站的账号

    • 写一篇随笔描述

      • 解题的思路过程

        • 输出A+B的和并不难,关键在于每三位需要逗号,(当然小于三位的直接输出)所以只要用if语句判断某位是否是三的倍数,再在前面加上逗号即可。
        • 其次,要怎么一个一个数字输出并且在他们中插入逗号?
          • 我找到sprintf函数,将两个整数和变成字符串存在字符数组里面
          • 利用strlen函数计算字符数组长度count
          • 进行count次循环,每三位输出一个逗号,同时输出字符
      • 我的初始代码

      • 编程过程中调试与在线测试(提交代码)后的bug发现与修改过程

        • 第一次发现若刚好是三的倍数,会在首位前面多输出一个逗号,所以我多加了一个判断条件

        • 第二次,测试了一下负数,发现编译器将“-”号当成一个字符,所以会出现这种情况

        • 所以我分成两种情况,一是和为正数,二是和为负数,正数的话直接处理,而负数我就把判断条件改了以下,直接跳过负号的位数判断,就是图中我画出来的部分,其他的大同小异

    • 在PAT上的提交列表记录

      • 第一次有测试点(9分的)给错了

      • 第二次

      • 大功告成,最终代码:

        
        #include<stdio.h>
        #include<string.h>
        #include<math.h>
        int main()
        {
          int a,b,sum,n,i=0,j=0,count;
          char  str[100];
          scanf("%d %d",&a,&b);
          sum=a+b;
          sprintf(str,"%d",sum);
          count=strlen(str);
          if(sum>=0)
        {
        	if(count>3)
                for(i=count-1,j=0;i>=0,j<count;i--,j++)
                {
        	    if((i+1)%3==0&&j!=0) printf(",");
        	    printf("%c",str[j]);
                }
            else
            printf("%d",sum);    
        }
        else
        {
            if(count>4)
            for(i=count-1,j=0;i>=0,j<count;i--,j++)
            {
        	if((i+1)%3==0&&j!=1) printf(",");
        	printf("%c",str[j]);
            }
            else
        	printf("%d",sum);   
        }
        
            return 0; 
         } 
        
        
    • 这次作业让我比较头疼的就是git和github的使用,因为全部是英文(看不懂啊),不过通过上网查找一些资料阅读博客还有同学给我的帮助,最终还是完成了。虽然不是很完美,不过相信接下来会变得更好!

    • MY PDF

  • 相关阅读:
    回顾2016,工作总结!
    上传base64格式的图片到服务器
    input输入提示历史记录
    input输入时软键盘回车显示搜索
    JS设置和读取Cookie
    正则表达式识别字符串中的URL
    X-Frame-Options配置
    pytest学习笔记
    测试理论基础总结
    redis杂七杂八
  • 原文地址:https://www.cnblogs.com/luzeming/p/6360959.html
Copyright © 2020-2023  润新知