第8周编程练习

1:单词长度

题目内容:

你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。

输入格式:

输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。

输出格式:

在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。

输入样例:

It's great to see you here.

输出样例:

4 5 2 3 3 4

#include<stdio.h>
int main()
{
    int i;
    char a;  //定义字符型变量 

    while(1){
        scanf("%c",&a);   //输入字符 
        if(a=='.'){       //两种情况,第一种是结束时,a=='0'的情况 
            if(i!=0){
                printf("%d",i);
            }
            break;
        }
        if(a==' '){       //第二种是碰见空格的情况 
            if(i!=0){
                printf("%d ",i);
                i=0;
            }
        }
        else
        {
            i+=1;        //没空格,没点,正常增加i 
        }
    }
    return 0;
}

2:GPS数据处理
图片说明
图片说明
图片说明
图片说明

#include <stdio.h>
#include <string.h>

int main()
{
    char s[1000],*p;
    int check,sum,hour,min,sec;
    do
    {
        scanf("%s",s);
        if (s[0]=='$' && s[1]=='G'&&s[2]=='P'&&s[3]=='R'&&s[4]=='M'&&s[5]=='C')
        {
            for (p=s+7;*p!=',';p++);        //找到定位的位置,刚开始直接输的第19位,结果错误,简直是个大坑 
            if (*(p+1)=='A') 
            {
                p=s;
                check=*(++p);
                for (p=p+1;*p!='*';p++)         //进行异或计算 
                {
                    check = check^(*p);
                }
                p++;
                sum=0;
                for (;*p!='\0';p++)              //将十六进制转换为10进制 
                {
                    if (*p>='0' && *p<='9')
                    {
                        sum = sum*16+*p-'0';
                    }else if (*p>='A' && *p<='F')
                    {
                        sum = sum*16 +*p-'A'+10;
                    }
                }
                if (sum==(check%65536))            //记录时间 
                {
                    hour = (s[7]-'0')*10+s[8]-'0'+8;
                    if (hour>=24) hour=hour-24;
                    min = (s[9]-'0')*10+s[10]-'0';
                    sec = (s[11]-'0')*10+s[12]-'0';
                }
            }
        }
    }while(strcmp(s,"END")!=0);
    printf("%02d:%02d:%02d\n",hour,min,sec);
    return 0;
}
全部评论

相关推荐

牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务