美文网首页
Experiment1 Vlog1(Final Edition)

Experiment1 Vlog1(Final Edition)

作者: TianWuJun | 来源:发表于2018-03-19 22:25 被阅读0次

    1. 设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入

    #include<stdio.h>
    void main()
    {
       int x,y;
       scanf("%d%*c%d",&x,&y);
       printf("x=%d,y=%d\n",x,y);
    
    
    }
    

    就目前而言我的想法而言,我想我的程序不只是可以进行整数的输入,而是可以让用户可以通过选择任意一个字符(ASCII值在0-127之间),然后在输入的任意字符中寻找用户选定的任意字符进行分割输出

        **故将程序做一下修改:
        QAQ发现好像写不出来,想把整本C Primer Plus再重新看一遍**
    

    2. 编写一个程序, 接收用户录入的日期信息并且将其显示出来. 其中, 输入日期的形式为月/日/年(mm/dd/yy), 输出日期的形式为年月日(yymmdd)

    #include<stdio.h>
    void main()
    {
       int x,y,z;
       scanf("%d%d%d",&x,&y,&z);
       printf("您录入的是%d年%d月%d日\n",z,x,y);
    
    
    }
    

    3. 有3个字符串,要求找出其中最大者

    头文件:#include <string.h>
    strcoll() 函数根据环境变量LC_COLLATE来比较字符串,其原型为:
    int strcoll( const char * str1, const char * str2 );
    【参数说明】str1、str2 是要进行比较的两个字符串。
    函数说明:strcoll() 会依环境变量 LC_COLLATE 所指定的文字排列次序来比较 s1 和 s2 字符串。
    默认情况下,LC_COLLATE 为"POSIX"或"C",strcoll() 和 strcmp() 一样根据ASCII比较字符串大小。
    对于设置了 LC_COLLATE 语言环境的情况下,则根据 LC_COLLATE 设置的语言排序方式进行比较。例如,汉字会根据拼音进行比较。
    【返回值】==若字符串 str1 和 str2 相同则返回0。若 str1 大于 str2 则返回大于 0 的值,否则返回小于 0 的值。==

    #include<stdio.h>
    #include<string.h>
    void main()
    {
        char x1[40],x2[40],x3[40],MAX[40];
        scanf("%s",x1);
        printf("%s\n",x1);
        scanf("%s",x2);
        printf("%s\n",x2);
        scanf("%s",x3);
        printf("%s\n",x3);
       strcpy(MAX,x1);
       if(strcmp(MAX,x2)<0)
        strcpy(MAX,x2);
       else if(strcmp(MAX,x3)<0)
        strcpy(MAX,x3);
       printf("%s",MAX);
    
    
    }
    

    在学习getchar()和putchar()时的一个疑问:

    #include<stdio.h>
    void main()
    {
      char ch;
      while(ch=getchar()!=EOF) //while((ch=getchar())!=EOF)
        putchar(ch);
    
    }
    

    在上述语句中ch=getchar()和EOF之间缺少一个括号,导致了输出的巨大差异,需要请教老师这之间的运算顺序.

    4. 编写一个程序, 对用户录入的产品信息进行格式化, 程序运行后需要有以下会话:

    Enter item number: 583

    Enter unit price: 13.5

    Enter purchase date(mm/dd/yy): 10/24/95

    Item Unit Price Purchase Date

    583 $ 13.50 10/24/95

    其中, 数字项和日期项左对齐, 单位价格右对齐, 美元数量最大取值为9999.99

    #include<stdio.h>
    #define Maxium 9999.99
    void main()
    {
        int Num,UP;
        char PD[10];
        printf("Please enter the item number:");
        scanf("%d",&Num);
        printf("Please enter unit price:");
        scanf("%d",&UP);
        if(UP>=Maxium)
           {
               printf("Oops,data was overflow,please try it again!\n");
               while(UP>=Maxium)
                {
                    printf("Please enter unit price:");
                    scanf("%d",&UP);
            if(UP<Maxium)
                break;
            else printf("Oops,data was overflow,please try it again!\n");
                }
           } /*处理当UP大于Maxium的情况*/
    
        printf("Please enter purchase date(mm/dd/yy):");
        scanf("%s",PD);
        printf("Item\tUnit Price\tPurchase Date\n");
        printf("%-d\t%d\t\t%-s\n",Num,UP,PD);
    }
    

    5. 计算若干整数的值,要求输入有若干行,每行第一个整数n,代表后面还有n个数据,如果n=0代表输入结束。输出:要求对于每一行都要在相应的行输出和。

    #include<stdio.h>
    void main()
    {
        int i,k,l,SUM;
        char ch;
    
    
        while(1)
        {
            printf("Please enter i for define how many number in this line:i=");
            scanf("%d",&i);
            if(i==0) break;
            SUM=i;
            printf("%d\t",i);
            for(k=0;k<i;k++)
            {
                scanf("%d",&l);
                SUM+=l;
            }
                printf("sum=%d\n",SUM);
    
    
        }
    }
    

    这个程序的运行结果非常不符合题目描述,可是不知道应该要怎么修改,主要问题在用循环做输入,在打印输入数的环节时,不知道应该如何将输入的数字依次输出。

    相关文章

      网友评论

          本文标题:Experiment1 Vlog1(Final Edition)

          本文链接:https://www.haomeiwen.com/subject/bnemqftx.html