学习c语言的第二天

1.混合类型数据格式化输入

本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。

输入格式:

输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。

输出格式:

在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。

#include<stdio.h>
int main(){
    float f1,f2;
    int i;
    char c;
    scanf("%f %d %c %f",&f1,&i,&c,&f2);
    printf("%c %d %.2f %.2f",c,i,f1,f2);
    return 0;
}

 发现写代码的时候真的非常适合查漏补缺,重要的事情说三遍:

想到不太记得的知识点一定要马上查!

想到不太记得的知识点一定要马上查!

想到不太记得的知识点一定要马上查!

 2.冒泡法排序 

将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。

本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。

输入格式:

输入在第1行中给出N和K(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。

输出格式:

在一行中输出冒泡排序法扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格

#include<stdio.h>
int main(){
    int i,j,k,b,c;
    scanf("%d %d",&k,&j);
    int a[k];
    for (i=0;i<k;i++){
        scanf("%d",&a[i]);
    }
    for(b=0;b<j;b++){
        for(c=0;c<k-b-1;c++){
            if(a[c]>a[c+1]){
                int temp=a[c+1];
                a[c+1]=a[c];
                a[c]=temp;
            }
        }
    }
    for(i=0;i<k;i++){
        printf("%d",a[i]);
        if(i<k-1)
            printf(" ");
    }
}

这也是一道很普通的冒泡排序,不过要注意小细节,比如要按题意说最后一个数字后不能有空格,否则会有格式错误 。

3.超速判断 

模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。

输入格式:

输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。

#include<stdio.h>
int main(){
    int speed;
    scanf("%d",&speed);
    if(speed<=60){
        printf("Speed: %d - OK",speed);
    }else printf("Speed: %d - Speeding",speed);
}

 4.单词长度

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

输入格式:

输入在一行中给出一行文本,以.结束

提示:scanf("%c",...);来读入一个字符,直到读到.为止。

输出格式:

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

#include<stdio.h>
int main(){
    char c;
    int b=0;
    while(1){
        int a=0;
        scanf("%c",&c);
        while(c!=' '&&c!='.'){
            a++;
            scanf("%c",&c);
        }
        if(a!=0){
            b++;
            if(b==1)
                printf("%d",a);
            else
                printf(" %d",a);
        }
        if(c=='.') break;
    }
}

5.12-24小时制

编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。

输入格式:

输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。

提示:scanf的格式字符串中加入:,让scanf来处理这个冒号。

输出格式:

在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM

#include<stdio.h>
int main(){
    int hour,minute,flag=0;
    scanf("%d:%d",&hour,&minute);
    if(hour>12){
        hour-=12;
        flag=1;
    }
    if(hour>=12){
        flag=1;
    }
    if(flag==1){
        printf("%d:%d PM",hour,minute);
    }else
        printf("%d:%d AM",hour,minute);
}

今天还是写的比较基础的c语言内容,因为想先复习一些基本知识,确实有些知识已经比较模糊了,明天开始准备复习数组和一些数据结构的内容啦。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值