• 第一次编程作业


    这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzzcxy/SE
    这个作业要求在哪里:https://edu.cnblogs.com/campus/fzzcxy/SE/homework/10283
    这个作业的目标 接触GitHub和重提c编程语法
    仓库地址:https://github.com/hui4869/211706204

    作业正文

    代码行数:169行
    需求分析时间:半小时
    编码时间:四小时
    缺点:
    1.只能使用固定句式,否则无法判断
    2.过于死板,无法应对多变的需求

    代码组成:

    1.将汉字转换成数字

    include<stdio.h>

    include<string.h>

    int zhs(char a[]){
    char list[11][10]={"零","一","二","三","四","五","六","七","八","九","十"};
    int i;
    for(i=0;i<11;i++){
    if(strcmp(list[i],a)==0){
    return i;
    }
    }
    }

    int num(char a[]){
    char b[10],c[10],d[10];
    b[0]=a[0];
    b[1]=a[1];
    b[2]='';
    c[0]=a[2];
    c[1]=a[3];
    c[2]='';
    d[0]=a[4];
    d[1]=a[5];
    d[2]='';
    if(strlen(a)2)
    return zhs(a);
    else if(strlen(a)
    4){
    if(zhs(b)!=0)
    return 10+zhs(b);
    else if (zhs(b)0)
    return zhs(b)*10;
    }
    else if(strlen(a)
    6){
    return zhs(d)*10+zhs(b);
    }
    }

    2.将结果转换成汉字输出
    void num2(int a){
    int x,y;
    if(a == 0)
    printf("零");
    if(a%10 == 0)
    {
    switch(a/10){
    case 1:
    printf("十");break;
    case 2:
    printf("二十");break;
    case 3:
    printf("三十");break;
    case 4:
    printf("四十");break;
    case 5:
    printf("五十");break;
    case 6:
    printf("六十");break;
    case 7:
    printf("七十");break;
    case 8:
    printf("八十");break;
    case 9:
    printf("九十");break;
    }
    }
    else{
    x=a/10;
    y=a%10;
    switch(x){
    case 1:
    printf("十");break;
    case 2:
    printf("二十");break;
    case 3:
    printf("三十");break;
    case 4:
    printf("四十");break;
    case 5:
    printf("五十");break;
    case 6:
    printf("六十");break;
    case 7:
    printf("七十");break;
    case 8:
    printf("八十");break;
    case 9:
    printf("九十");break;
    }
    switch(y){
    case 1:
    printf("一");break;
    case 2:
    printf("二");break;
    case 3:
    printf("三");break;
    case 4:
    printf("四");break;
    case 5:
    printf("五");break;
    case 6:
    printf("六");break;
    case 7:
    printf("七");break;
    case 8:
    printf("八");break;
    case 9:
    printf("九");break;
    }

    }
    

    }

    3.实现运算
    int cal(int sum,char a[],char b[]){
    int x;
    x=num(b);
    if(strcmp(a,"增加")0)
    return sum+x;
    else if(strcmp(a,"减少")
    0)
    return sum-x;
    }

    4.主函数限制格式和判断
    int main(){
    int i,sum;
    char var[100],m1[100],m2[100],m3[100],m4[100];
    char n1[100],n2[100],n3[100];
    char p1[100],p2[100];
    char l1[100],l2[100],l3[100],l4[100],l5[100],l6[100],l7[100],l8[100],l9[100],l10[100];

    scanf("%s %s %s %s",m1,m2,m3,m4);
    sum=num(m4);
    while((scanf("%s",var))!=EOF){
    	if(strcmp(var,m2)==0)
    	{
    		scanf("%s %s",n2,n3);
    		if(strcmp(n2,"增加")==0)
    		{
                sum=cal(sum,n2,n3);
            }
            else if(strcmp(n2,"减少")==0)
            {
                sum=cal(sum,n2,n3);
            } 
    	}
    	else if(strcmp(var,"看看")==0)
    	{
    		scanf("%s",p2);
    		if(strcmp(p2,n2)==0)
    			printf("%d",sum);
    			num2(sum);
    			printf("
    ");
    	}
    	else if(strcmp(var,"如果")==0)
    	{
    		scanf("%s %s %s %s %s %s %s %s %s",l1,l2,l3,l4,l5,l6,l7,l8,l9);
    		if(strcmp(l5,"看看")==0)
    		{
    			if(strcmp(l2,"大于")==0)
    			{
    				i=num(l3);
    				if(sum>i)
    					printf("%s
    ",l6);
    				else
    					printf("%s
    ",l9);
    			}
    			
    		}
    	}
    }
    

    }

  • 相关阅读:
    页面跳转
    基于MCP2515的Linux CAN总线驱动程序设计(三)
    基于MCP2515的Linux CAN总线驱动程序设计(二)
    基于MCP2515的Linux CAN总线驱动程序设计(一)
    任意ASCII码格式信息的huffman tree压缩(编码)和解压(译码)
    转:Linux环境下段错误的产生原因及调试方法小结
    转:C语言中volatile关键字的作用 专家博客
    处理字节对齐
    转: sizeof,总结
    sizeof()用法汇总
  • 原文地址:https://www.cnblogs.com/hui4869/p/12288632.html
Copyright © 2020-2023  润新知