头歌实训平台C语言

目录

C语言程序设计编辑与调试环境

 第1关打印输出 Hello World 

 第2关打印输出图形

 第3关求3个数的最大值

 第4关熟悉C语言调试过程

顺序结构程序设计

第1关加法运算

第2关不使用第3个变量,实现两个数的对调

第3关用宏定义常量

第4关数字分离

第5关计算总成绩和平均成绩

第6关求三角形的面积

第7关立体几何计算题

第8关计算两个正整数的最大公约数

选择结构程序设计

第1关排序

第2关选择结构-闰年判断

第3关选择结构-分段函数问题

第4关学生成绩等级换算

选择结构程序设计进阶

第1关快递费用计算

第2关计算一元二次方程的根

正在挑战2610人完成挑战24324人可获经验100点

已完成

第3关产品信息格式化

循环结构程序设计1

第1关小球自由落体运动

第2关求解出n以内所有能被5整除的正整数的乘积

第3关最大公约数和最小公倍数

第4关字符串中各类字符数的统计

第5关求sn=a+aa+aaa+aaaa+......的值

循环结构程序设计2

第1关C循环-求平均成绩

第2关C循环-求各位数字之积

第3关C循环-求阶乘之和

第4关C循环-水仙花数

第5关C循环-寻找完数

第6关分数求和

函数

第1关求和

第2关回文数计算

第3关 编写函数求表达式的值

第4关阶乘数列

第5关亲密数

第6关公约公倍数

递归函数、嵌套函数

第1关递归求阶乘数列

第2关递归实现输出一个整数的逆序

第3关将整数递归转换成字符串

第4关递归实现Ackman函数

一维数组和二维数组

第1关排序问题

第2关查找整数

第3关计算数组中元素的最大值及其所在的行列下标值

第4关二分查找

第5关鞍点

第6关删除最大值

第7关杨辉三角

字符数组

第1关字符逆序

第2关字符统计

第3关字符插入

第4关字符串处理

第5关字符串统计

第6关字符串排序

指针

第1关用指针法输入12个整数,然后按每行4个数输出

第2关指针变量作为函数参数实现两变量交换值

第3关报数

第4关strcmp函数

指针进阶

第1关输出若干个学生成绩中的最高分.要求用指针函数实现

第2关采用指针变量表示地址的方法输入输出数组中的个元素

第3关用指针实现数组循环移动

结构体

第1关结构体变量的初始化和引用

第2关结构体排序

第3关结构体存储数据

第4关结构体存储学生信息

文件

第1关HelloWorld

第2关文件读取和写入

第3关统计文本字母数量

第4关读取文件中指定学生信息

C语言程序设计编辑与调试环境

第1关打印输出 Hello World

任务描述

本关任务:通过运行一个C语言程序,让你初步了解程序的运行方法。

#include<stdio.h>
	int main(void)
	{  
	/********* Begin *********/
	printf( "Hello World\n" );
    system( "pause" );
	
	/********* End *********/
       return 0;
	}

第2关打印输出图形

任务描述

本关任务:参照上面调试的程序,编写一个能输出规定图形的程序。

编程要求

编写一个C程序,输出以下图案,并上机调试通过。第一行开头有4个空格,第二行开头有3个空格,第三行有2个空格,第四行开头有一个空格,第五行开头没有空格,9*

  1. *
  2. ***
  3. OK
  4. Hello!
  5. *********

测试说明

平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。

输入:无

输出:

  1. *
  2. ***
  3. OK
  4. Hello!
  5. *********

    提示 本题通过执行多个printf函数输出每一行即可,暂时不用考虑使用循环。

    #include<stdio.h>
    	int main(void)
    	{  	
    	/********* Begin *********/
    	printf("    *\n");
        printf("   ***\n");
        printf("  OK\n");
        printf(" Hello!\n");
        printf("*********\n");
    	
    	/********* End *********/
           return 0;
    	}

第3关求3个数的最大值

任务描述

本关任务:编写一个程序,输入a、b、c三个整数,输出其中最大值。

相关知识

输入

输入一行数据,分别为a b c

输出

a b c其中最大的数,不用换行。

如何求出最大值

求几个数的最大值?

三个数两两比较,将较大的数存入最大值变量max;

#include<stdio.h>
	int main(void)
	{  
	/********* Begin *********/
    int a, b, c,ma=-999999;
    scanf("%d,%d,%d",&a,&b,&c);
    if(a>ma){
        ma=a;
    }
    if(b>ma){
        ma=b;
    }
    if(c>ma){
        ma=c;
    }
	printf("max=%d",ma);
	/********* End *********/
       return 0;
	}

第4关熟悉C语言调试过程

任务描述

本关任务:以下程序源代码有错误,请使用C语言的调试功能,检查程序的错误并更正,使之能正确运行。

编程要求

程序中要求键盘输入x的值,当x的值为5时输出*****,否则输出#####

  • 输入:整数x的值。

  • 输出:当x的值为5时输出*****,否则输出#####

#include"stdio.h"
int main(void)
  {
	  /********* Begin *********/
      int  x;
      int y=2,z=3;
      scanf("%d",&x); 
      if(x==y+z)
      printf("*****");
      else  
      printf("#####");
      return 0;
	  /********* End *********/
  }

顺序结构程序设计

第1关加法运算

任务描述

本关任务:写一个加法程序,输入整数a,b,输出他们的和。

#include<stdio.h>
	int main(void)
	{  
	  int a,b,c; 
      //Please input a,b:
	  /*********Begin*********/
	  scanf("%d,%d",&a,&b);
      c=a+b;
      printf("%d+%d=%d",a,b,c);
	  
	  /*********End**********/ 
       return 0;
	}

第2关不使用第3个变量,实现两个数的对调

任务描述

本关任务:下列程序是不用第三个变量,实现将两个数进行对调的操作。 程序代码如下: 1 #include<stdio.h> 2 int main(void) 3 { 4 int a,b;printf(“Enter a and b:”); 5 scanf(“%d%d”,&a,&b); 6 printf(“a=%d b=%d\n”,a,b); 7 a= ① ;b= ② ;a= ③ ; 8 printf(“a=%d b=%d\n”,a,b); 9 return 0; 10 }

#include<stdio.h>
	int main(void)
	{  
	  int a,b;
	  //Enter a and b:
      scanf("%d%d",&a,&b); 
      printf("a=%d b=%d\n",a,b);
	  /*********Begin*********/
	  a=a+b;
      b=a-b;
      a=a-b;
	  
	  /*********End**********/
	  printf("a=%d  b=%d\n",a,b);  
       return 0;
	

第3关用宏定义常量

任务描述

本关任务:已知某物品单价为30,数量为x。求商品的总价钱。用宏定义物品的单价。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,用宏定义物品的单价。

  • 输入:一个整数x,代表物品的数量。

  • 输出:输出总价格。

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

第4关数字分离

任务描述

输入一个三位数,分别求出x的各位数字,十位数字,百位数字的值。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,输入一个三位数,分别求出x的各位数字,十位数字,百位数字的值。

  • 输入:一个三位数

  • 输出:输出该数字的百位,十位,个位,数字之间用一个空格隔开。

    #include<stdio.h>
    	int main(void)
    	{  
    	  /*********Begin*********/
    	  int k,l,m,n;
          scanf("%d",&k);
          l=k/100;
          m=k/10%10;
          n=k%10;
          printf("%d %d %d\n",l,m,n);
          
    	  
    	  /*********End**********/ 
           return 0;
    	}

第5关计算总成绩和平均成绩

任务描述

本关任务:编程求从键盘上输入一个学生的五门成绩,计算出该学生的总成绩和平均成绩。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,编程求从键盘上输入一个学生的五门成绩,计算出该学生的总成绩和平均成绩。

  • 输入:五个整数

  • 输出:总成绩和平均成绩,其中平均成绩保留小数点后两位。

    #include<stdio.h>
    	int main(void)
    	{  
    	  /*********Begin*********/
    	  int a,b,c,m,n,sum;
          float s;
          scanf("%d%d%d%d%d",&a,&b,&c,&m,&n);
          sum=a+b+c+m+n;
          s=sum/5.00;
          printf("%d %.2f",sum,s);
    	  
    	  /*********End**********/ 
           return 0;
    	}

第6关求三角形的面积

任务描述

本关任务:编程求以a、b、c为边长的三角形的面积area

相关知识

三角形面积计算公式为: 假设三角形三条边长分别为a、b、c,其中s=(a+b+c)/2,则面积:

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,编程求以a、b、c为边长的三角形的面积area

  • 输入:a b c三角形的三条边,可以是小数;

  • 输出:三角形面积,保留3位小数。

    #include<stdio.h>
    	int main(void)
    	{  
    	  /*********Begin*********/
    	  float a,b,c,area,s;
          scanf("%f %f %f",&a,&b,&c);
          s=(a+b+c)/2.0;
          area=sqrt(s*(s-a)*(s-b)*(s-c));
          printf("%.3f",area);
    	  
    	  /*********End**********/ 
           return 0;
    	}
    

第7关立体几何计算题

任务描述

本关任务:设圆半径r,圆柱高h , 求圆周长C1,半径为r的圆球表面积Sb,圆半径r,圆柱高为h的圆柱体积Vb。 用scanf输入数据,输出计算结果,输出时取小数点后两位数字。请编程序。 PI=3.14

编程要求

  • 输入:两个double型浮点数,rh

  • 输出:圆周长C1、圆球表面积Sb、圆柱体积Vb。 保留两位小数,每个结果后换行。

    #include<stdio.h>
    #define PI 3.14
    	int main(void)
    	{  
    	  /*********Begin*********/
    	  double r,h,C1,Sb,Vb;
          scanf("%lf,%lf",&r,&h);
          C1=2*PI*r;
          Sb=4*PI*r*r;
          Vb=PI*r*r*h;
          printf("C1=%.2lf\n",C1);
          printf("Sb=%.2lf\n",Sb);
          printf("Vb=%.2lf\n",Vb);
    	  
    	  /*********End**********/ 
           return 0;
    	}
    

第8关计算两个正整数的最大公约数

任务描述

编程计算两个正整数的最大公约数。其中求最大公约数的函数原型已经给出,请在主函数中编程调用函数,输出最大公约数。

程序的运行示例: 12,3↙ 3 ####函数原型说明 求最大公约数的函数原型如下: int MaxCommonFactor( int a, int b); 返回值:返回的是最大公约数;若输入的数据有任意一个不满足条件,返回值是-1。 参数:a,b是两个整型数

相关知识

本任务主要考察函数的调用方法。 ####编程要求 根据提示,在右侧编辑器Begin-End处补充代码,编程计算两个正整数的最大公约数。

  • 输入:输入格式:"%d,%d"
  • 输出:输出格式:"%d\n"
    #include<stdio.h>
    int MaxCommonFactor( int a, int b)
    { 
       int c; 
       if(a<=0||b<=0) 
          return -1; 
       while(b!=0)
       { 
         c=a%b; 
         a=b;
         b=c;
       } 
      return a; 
    }   
    int main(void)
    	{  
    	  /*********Begin*********/
    	 int n,m;
         scanf("%d,%d",&n,&m);
         printf("%d\n",MaxCommonFactor(n,m));
    	  
    	  /*********End**********/ 
        return 0;
    }
    

选择结构程序设计

第1关排序

任务描述

本关任务:下面的程序是从键盘输入三个整数按从小到大的顺序输出。

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

相关知识

输入格式

输入格式如下:

printf("请输入三个整数:"); scanf("%d%d%d",&a,&b,&c);

输出

排序输出从小到大的三个整数。

输出格式如下:

printf("从小到大排列为:%d,%d,%d",a,b,c);

#include<stdio.h>
#include<math.h>
	int main(void)
	{  
	  /*********Begin*********/
	  int a[10];
      printf("请输入三个整数:");
      for(int i=1;i<=3;i++){
          scanf("%d",&a[i]);
      }
      for(int i=1;i<3;i++){
          for(int j=i+1;j<4;j++){
              if(a[i]>a[j]){
                  int t=a[i];
                  a[i]=a[j];
                  a[j]=t;
              }
          }
      }
      printf("从小到大排列为:%d,%d,%d",a[1],a[2],a[3]);
	  /*********End**********/ 
       return 0;
	}

第2关选择结构-闰年判断

任务描述

编写程序,完成如下功能:从键盘输入任意年份year,判别该年份是否闰年。 为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

相关知识

输入

从键盘任意输入一个年份 。

输出

根据是否闰年进行输出,是输出"****是闰年!",否输出"****不是闰年!",其中****为当前输入的年份。

样例输入

2000

样例输出

2000 是闰年!

#include<stdio.h>
	int main(void)
	{  
	  /*********Begin*********/
		  int year;
      scanf("%d",&year);
      if((year%400==0) || (year%4==0&&year%100!=0)){
          printf("%d 是闰年!",year);
      }
      else{
          printf("%d 不是闰年!",year);
      }  
	  
	  /*********End**********/ 
       return 0;
	}

第3关选择结构-分段函数问题

任务描述

本关任务:编写程序,根据输入的值,输出函数的值。

有一个函数,定义如下

写一段程序,输入x,输出y

相关知识

输入

从键盘任意输入一个数x

输出

一个数y,保留小数点后三位。

#include<stdio.h>
	int main(void)
	{  
	  /*********Begin*********/
	  double x,y;
      scanf("%lf",&x);
      if(x<0 && x!=-3){
          y=x*x+x-6;
      }
      else if(x>=0 && x<10 && x!=2 && x!=3){
          y=x*x-5*x+6;
      }
      else{
          y=x*x-x-1;
      }
      printf("%.3f",y);
	
	  /*********End**********/ 
       return 0;
	}

第4关学生成绩等级换算

任务描述

本关任务:给出一百分制成绩,要求输出成绩等级ABCDE90分以上为A 80-89分为B 70-79分为C 60-69分为D 60分以下为E,如果输入数据不在0~100范围内,请输出一行:“Score is error!”。

相关知识

输入

从键盘输入一个成绩,成绩可以使浮点数。

输出

(1)如果输入数据在0100范围内:一个字符,表示成绩等级。 (2)如果输入数据不在0~100范围内,请输出一行:“Score is error!

#include<stdio.h>
	int main(void)
	{  
	  /*********Begin*********/
	  int n;
      scanf("%d",&n);
      if(n>100 || n<0)
      {
          printf("Score is error!");
          return 0;
      }
      else if(n>=90 && n<=100)
      {
          printf("A");
          return 0;
      }
      else if(n>=80 && n<=89)
      {
          printf("B");
          return 0;
      }
      else if(n>=70 && n<=79)
      {
          printf("C");
          return 0;
      }
      else if(n>=60 && n<=69)
      {
          printf("D");
          return 0;
      }
	  else if(n<60)
      {
          printf("E");
          return 0;
      }
	  
	  
	  /*********End**********/ 
       return 0;
	}

选择结构程序设计进阶

第1关快递费用计算

任务描述

本关任务:编写一个计算机快递费的程序。

上海市的某快递公司根据投送目的地距离公司的远近,将全国划分成5个区域:

快递费按邮件重量计算,由起重费用、续重费用两部分构成:

(1) 起重(首重)1公斤按起重资费计算(不足1公斤,按1公斤计算),超过首重的重量,按公斤(不足1公斤,按1公斤计算)收取续重费; (2) 同城起重资费10元,续重3元/公斤; (3) 寄往1区(江浙两省)的邮件,起重资费10元,续重4元; (4) 寄往其他地区的邮件,起重资费统一为15元。而续重部分,不同区域价格不同:2区的续重5元/公斤,3区的续重6.5元/公斤,4区的续重10元/公斤。

编程要求

编写程序,从键盘输入邮件的目的区域编码和重量,计算并输出运费,计算结果保留2位小数。

提示

续重部分不足一公斤,按1公斤计算。因此,如包裹重量2.3公斤:1公斤算起重,剩余的1.3公斤算续重,不足1公斤按1公斤计算,1.3公斤折合续重为2公斤。如果重量应大于0、区域编号不能超出0-4的范围。

输入

用逗号分隔的两个数字,第一个表示区域、第二个是重量:"%d,%f"

输出

价格的输出格式:"Price: %.2f\n" 区域错误的提示信息:"Error in Area\n"

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

#include<stdio.h>
	int main(void)
	{ 
    int area;
    float weight,price,x1,x2;
    scanf("%d,%f",&area,&weight);
    if (weight<=1)
    {
    x1=1.0;
    }
    else{
    x1=1.0;
    x2=ceil(weight-1);
    }
    if (area>0&&area<=4){
    switch(area){
    case(0):price=x1*10+x2*3;break;
    case(1):price=x1*10+x2*4;break;
    case(2):price=x1*15+x2*5;break;
    case(3):price=x1*15+x2*6.5;break;
    case(4):price=x1*15+x2*10;break;
    }
    printf("Price: %5.2f\n",price);
    }
    else {
    printf("Error in Area\n");
    printf("Price: 0.00\n");
    }	  
	  
	  /*********End**********/ 
       return 0;
	}

第2关计算一元二次方程的根

任务描述

本关任务:根据下面给出的求根公式,计算并输出一元二次方程ax2+bx+c=0的两个实根,要求精确到小数点后4位。其中a,b,c的值由用户从键盘输入。如果用户输入的系数不满足求实根的要求,输出错误提示 "error!"。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,按照要求完成本关任务。 ####输入

输入格式: "%f,%f,%f"

输出

输入提示信息:"Please enter the coefficients a,b,c:\n"

输出格式:"x1=%.4f, x2=%.4f\n"

输入错误提示信息:"error!\n"

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

#include<stdio.h>
	int main(void)
	{  
	  /*********Begin*********/
	  float a,b,c,x1,x2;
      printf("Please enter the coefficients a,b,c:\n");
      scanf("%0f,%0f,%0f",&a,&b,&c);
      x1=(-b+sqrt(b*b-4*a*c))/(2*a);
      x2=(-b-sqrt(b*b-4*a*c))/(2*a);
      if((b*b-4*a*c)<0)
      {
          printf("error!\n");
      }
        else
        {
            printf("x1=%.4f, x2=%.4f\n",x1,x2);
        }    
         
	  
	  /*********End**********/ 
       return 0;
	}

第3关产品信息格式化

任务描述

本关任务:编写一个程序, 对用户录入的产品信息进行格式化。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,编写一个程序, 对用户录入的产品信息进行格式化。

以下为程序的运行结果示例:

Enter item number:

385↙

Enter unit price:

12.5↙

Enter purchase date (mm/dd/yy):

12/03/2015↙

Item Unit Purchase

385 $ 12.50 12032015

输入

产品编号输入格式:"%d"

产品价格输入格式:"%f"

购买日期输入格式:"%d/%d/%d"

输出

产品编号输入提示信息:"Enter item number:\n"

产品价格输入提示信息:"Enter unit price:\n"

购买日期输入提示信息:"Enter purchase date (mm/dd/yy):\n"

格式化输出的表头信息:"Item Unit Purchase\n"

输出格式:"%-9d$ %-9.2f%02d%02d%02d\n"

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

#include<stdio.h>
	int main(void)
	{  
	  /*********Begin*********/
	  printf("Enter item number:\n");
      int n;
      scanf("%d",&n);
      printf("Enter unit price:\n");
      float p;
      scanf("%f",&p);
      printf("Enter purchase date (mm/dd/yy):\n");
      int m,d,y;
      scanf("%d/%d/%d",&m,&d,&y);
      printf("Item Unit Purchase\n");
      printf("%-9d$ %-9.2f%02d%02d%02d\n",n,p,m,d,y);
	    
	  
	  /*********End**********/ 
       return 0;
	}

循环结构程序设计1

第1关小球自由落体运动

任务描述

一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 结果保留两位小数。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,并按照要求完成本关任务。

输入

从键盘输入MN的值。

输出

它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行。

#include<stdio.h>
	int main(void)
	{  
	  /*********Begin*********/
	float m,n,h,i,t,sum;
	scanf("%f %f",&m,&n);
	sum=m;
	for(i=1;i<n;i++)
	{
	t=m/2;
	h=t/2;
	sum+=2*t;
	m=t;	
	}
	printf("%.2f %.2f",h,sum);
	  /*********End**********/ 
       return 0;
	}

第2关求解出n以内所有能被5整除的正整数的乘积

任务描述

本关任务:求解出n以内(包含n)所有能被5整除的正整数数的乘积s

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,求解出n以内(包含n)所有能被5整除的正整数数的乘积s

输入

输入包含多个样例,每个样例一个正整数n,占一行。读取到文件结尾。输入的n不超过100

输入格式

scanf("%d", &n)

输出 对于每个样例n,输出n以内(包含n)所有能被5整除的正整数的乘积。

输出格式

printf("%d\n", s);

#include<stdio.h>
	int main(void)
	{  
	  /*********Begin*********/
	int n,y=1,i;
 	scanf("%d",&n);
 	for(i=5;i<=n;i+=5)y*=i;
 	printf("%d\n",y);
 	return 0;  
	  
	  /*********End**********/ 
       return 0;
	}

第3关最大公约数和最小公倍数

任务描述

本关任务:输入两个正整数mn,求其最大公约数和最小公倍数。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,输入两个正整数mn,求其最大公约数和最小公倍数。

输入

从键盘上任意输入两个数。

输出

分两行输出,第一行输出:最大公约数是多少;第二行输出最小公倍数是多少。

#include<stdio.h>
	int main(void)
	{  
	  /*********Begin*********/
    int x, y, z, m, n;
	scanf("%d%d", &x, &y);
	m = x, n = y;
	while (y != 0)
	{
		z = x%y;
		x = y;
		y = z;
	}
	printf("最大公约数是:%d\n", x);
	printf("最小公倍数是:%d", m*n / x); 
	  /*********End**********/ 
       return 0;
	}

第4关字符串中各类字符数的统计

任务描述

本关任务:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

输入

一行字符。

输出

统计每种字符的个数值。

#include<stdio.h>
	int main(void)
	{  
	  /*********Begin*********/
	
	int letter=0,space=0,digit=0,other=0;/*定义变量并初始化*/ 
	char c;/*定义字符串c*/ 
	while((c=getchar())!='\n')/*判断c是否是回车键*/ 
	if(c>='a'&&c<='z'||c>='A'&&c<='Z')/*判断c是否是字母*/ 
		letter++;/*计算字母个数*/ 
	else if(c==' ')/*判断c是否是空格*/ 
		space++;/*计算空格个数*/ 
	else if(c>='0'&&c<='9')/*判断c是否是数字*/ 
		digit++;/*计算数字个数*/ 
	else 
		other++;/*计算其他字符个数*/ 
	printf("%d %d %d %d",letter,digit,space,other);
	  
	  /*********End**********/ 
       return 0;
	}

第5关求sn=a+aa+aaa+aaaa+......的值

任务描述

本关任务:键盘输入正整数an,编程 s=a+aa+aaa+aaaa+aa...ana)的值。 例如: a=2n=5时,表示计算由2组成的数的和:2+22+222+2222+22222 ( 此时 共有5个数相加)。

输入:5 3 表示3个由5组成的数相加,即计算5+55+555的值

输出:615

输入:5 4 表示计算5+55+555+5555的值

输出:6170

相关知识

在编程中,我们常常遇到需要将一条语句或者一段代码重复运行多次的情况,如没有循环语句,需逐条编写,会导致程序的繁杂与冗余。

C中可利用whilefordo-while等常用循环函数来是语句或代码块进行重复操作,从而省去很多重复的工作,使代码简洁明了。

while语句

基本语法:基于while实现循环的基本语法如下:

  1. while(布尔值){
  2. 需要循环的语句或者代码块
  3. }
  • 其中括号中的布尔值如果为真,这进入循环,直到布尔值变为假,则推出循环,继续执行之后代码。
  • 其中括号中的布尔值如果为假,则直接不进入循环,继续执行循环代码块之后代码。

应用示例:

  1. // 需要循环输出3次6
  2. int n = 3;
  3. while(n--){
  4. printf("6");
  5. }

for语句

基本语法:基于for实现循环的基本语法如下:

  1. for(1.赋值语句或者省略;2.判断语句或者省略;3.执行语句或者省略){
  2. 需循环的语句或者代码块
  3. }
  • 其中1处位置,是一个赋值语句,在循环开始前执行一次,之后再不执行。
  • 其中2处位置为判断语句,每次开始循环时(包括第一次)都会先经过这个判断语句的判断
    • 如果此处为真,则进入循环,执行循环内语句或者代码块。
    • 如果此处为假,则不进入循环,执行之后的代码。
  • 其中3处位置为一个运算语句,每执行完一次循环,就会执行一次此处代码。

应用示例:

  1. // 同样需要输出3个6
  2. int i;
  3. for(i=0;i<3;i++){
  4. printf("6");
  5. }

编程要求

本关的编程任务是补全右侧代码片段中BeginEnd中间的代码,具体要求如下: 键盘输入正整数an,编程 s=a+aa+aaa+aaaa+aa...ana)的值。 例如: a=2n=5时,表示计算由2组成的数的和:2+22+222+2222+22222 ( 此时 共有5个数相加)。

输入:5 3 表示<

引用:Educoder头歌实践平台 中 Java 数据结构之图 共4关 金币共2300 的那个实践项目答案由于图论问题渗透整个计算机科学,图算法对于计算机学科至关重要。成百上千的计算问题最后都可以归约为图论问题。引用:第一关public class HelloWorld{ /********* Begin *********/ public static void main(String[] args) { System.out.println("姓名:张三"); System.out.println("年龄:25"); System.out.println("职业:JAVA高级工程师"); System.out.println("薪资:15K"); } /********* End *********/ } 引用:第五关package chapter2; /********* Begin *********/ public class HelloWorld { String userName = "张三"; public static void main(String[] args){ System.out.println("hello eduCoder"); } } /********* End *********/。 根据提供的引用内容,我无法直接提供你所需的头歌实训作业答案。但是,我可以给你一些关于Java的一般知识,以帮助你完成头歌实训作业。 在Java中,你可以使用`public static void main(String[] args)`方法作为程序的起点。在这个方法中,你可以编写你想要执行的代码。例如,你可以使用`System.out.println`来输出一些文本。 如果你想定义一个变量,你可以使用`String`关键字,并指定变量的名称和初始值。例如,`String userName = "张三";`表示定义了一个名为`userName`的字符串变量,并将其初始化为"张三"。 希望这些信息对你有帮助。如果你有其他关于Java的问题,请随时提问。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值