C语言百日刷题第三天

C语言百日刷题第三天

      • 21.时间转换
      • 22.计算总成绩和平均分
      • 23.计算体重指数
      • 24.计算三角形的周长和面积
      • 25.大小写转换
      • 26.输入一个十六进制数a,和一个八进制数b,输出a+b的十进制结果
      • 27.从键盘任意输入一个字符,编程判断是否是字母(包括大小写)
      • 28.从键盘输入 n 个学生成绩,输出每组排在前五高的成绩
      • 29.计算字符出现次数并比较
      • 30.判断输入内容是不是字母

21.时间转换

C语言百日刷题第三天_第1张图片
方法一:

#include 
int main() 
{
    int seconds;
    int h = 0;
    int min = 0;
    int s = 0;
    while (scanf("%d", &seconds) != EOF) 
    { 
       h=seconds/60/60;
       min = (seconds-h*3600)/60;
       s = seconds - (h*3600)-(min*60);
       printf("%d %d %d",h,min,s);
    }
    return 0;
}

方法二:

#include
int main ()
{
    int a;
    while(~scanf("%d",&a))
    {
    printf("%d %d %d",a/3600,(a%3600)/60,a%60);
    }
    return 0;
}

22.计算总成绩和平均分

C语言百日刷题第三天_第2张图片

#include 
int main()
{
    float a, b, c, sum, average;
    scanf("%f %f %f", &a, &b, &c);
    sum = a+b+c;
    average = sum/3;
    printf("%.2f %.2f",sum, average);
    return 0;
}

23.计算体重指数

C语言百日刷题第三天_第3张图片

#include
int main()
{
    float a,b;
    scanf("%f %f",&a,&b);
    b=b/100;
    printf("%.2f",a/(b*b));
    return 0;
}

24.计算三角形的周长和面积

C语言百日刷题第三天_第4张图片

#include
#include
int main()
{
 float a,b,c,p;
 scanf("%f %f %f",&a,&b,&c);
 p=(a+b+c)/2;
 printf("circumference=%.2f area=%.2f",a+b+c,sqrt(p*(p-a)*(p-b)*(p-c)));
 return 0;
}

25.大小写转换

C语言百日刷题第三天_第5张图片
将大写字母变成小写字母,只需要将它们的ASCII加32即可,然后输出。

#include 
int main()
{
    char a = 0;
    while (~scanf("%c",&a))
    {
        printf("%c\n", a+32);
        getchar();//吸收掉\n
    }
    return 0;
}

26.输入一个十六进制数a,和一个八进制数b,输出a+b的十进制结果

C语言百日刷题第三天_第6张图片
%x:十六进制 ; %o:八进制 ; %d:十进制
输入的数在计算机里面都是二进制,所以可以直接相加,然后以十进制的形式输出

#include
int main()
{
    int a, b;
    scanf("%x %o", &a, &b); 
    printf("%d\n", a + b); 
return 0;
}

27.从键盘任意输入一个字符,编程判断是否是字母(包括大小写)

C语言百日刷题第三天_第7张图片
在c语言 ASCII码中,A~Z对应:65-90 , a~z对应:97-122

#include 
int main (void)
{
    char ch;
    scanf("%c", &ch);
    if(ch<=112&&97<ch||65<=ch&&ch<=90)
    printf("YES");
    else
    printf("NO");
    return 0;
}

28.从键盘输入 n 个学生成绩,输出每组排在前五高的成绩

C语言百日刷题第三天_第8张图片
采用冒泡排序法:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
C语言百日刷题第三天_第9张图片

#include 
//创建一个冒泡排序函数
void maopao(int arr[], int sz)
{
    int i = 0;
    int j = 0;
    for (i = 0; i < sz - 1; i++)
    {
        for (j = 0; j < sz - 1 - i; j++)
        {
            if (arr[j] < arr[j + 1])
            {
                int jh = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = jh;
            }
        }
    }
}
 
int main()
{
    int arr[40];
    int n = 0;
    int i = 0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    maopao(arr,n);
    for(i=0;i<5;i++)
    {
        printf("%d ",arr[i]);
    }
    return 0;
}

29.计算字符出现次数并比较

C语言百日刷题第三天_第10张图片

#include 
#include 
int main()
{
    char n[100];
    int a=0, b=0;
    scanf("%s", n);
    for(int i=0; i<strlen(n); i++)
    {
        if(n[i]=='A')
            a++;
        else if(n[i]=='B')
            b++;
    }
    if(a>b)
        printf("A");
    else if(a<b)
        printf("B");
    else
        printf("E");
    return 0;
}

30.判断输入内容是不是字母

C语言百日刷题第三天_第11张图片

#include 
int main ()
{
 char ch;
 while(scanf("%c\n",&ch)!=EOF)
 {
     if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
     {
         printf("%c is an alphabet.\n",ch);
         }
     else
     {
         printf("%c is not an alphabet.\n",ch);
     }
 }
return  0;
}

你可能感兴趣的:(#,C语言百日刷题,c语言,算法)