C语言编程入门—顺序程序(week2)

C语言编程入门—顺序程序(week2)_第1张图片今天更新第二弹~

C语言编程入门—顺序程序(week2)_第2张图片


问题 A: 【C语言1】【1-1】求两数之差

题目描述

输入两个数,求两个数的差

以下程序有语法错误,请改正

#include
int main( )
{
   int x,y;
   int r;
   scanf("%d%d", x,y);
   r=x-y
   printf("%d-%d=\n",x y r);
   return 0;
}

 输入

12 24

 输出

 12-24=-12

 问题分析 

注意  ;   scanf  printf  函数即可...

#include 
int main( )
{
   int x,y;
   int r;
   scanf("%d %d",&x,&y);
   r=x-y;
   printf("%d-%d=%d\n",x,y,r);
   return 0;
}

问题 B: (1) 求温差 (----顺序程序设计)

题目描述

输入一天中的最高温度值和最低温度值,求此天的温差,请先输入最高温度值,再输入最低温度值。温度值假设都是整数。

 输入

30 25

 输出

5

 问题分析 

会用  scanf  和  printf  即可,这里仅用了两个变量,因为  printf  可以直接输出表达式的值,如下:

#include 
int main( )
{
   int high,low;
   scanf("%d %d",&high,&low);
   printf("%d\n",high-low);
   return 0;
}

另一个版本用到三个变量, 用  dis  来存储差值

#include 
int main( )
{
   int high,low,dis;
   scanf("%d %d",&high,&low);
   dis=high-low;
   printf("%d\n",dis);
   return 0;
}

问题 C: (2) 时间计算问题(二) (----顺序程序设计)

题目描述

将秒数转换为时间格式(24小时制,00:00:00格式)

 输入

3612

 输出

01:00:12

 问题分析 

学会运用  %02d  进行格式化输出~

#include 
int main( )
{
   int time;
   int hour,minute,second;
   scanf("%d",&time);
   hour=time/3600;
   minute=time/60%60;
   second=time%60;
   printf("%02d:%02d:%02d\n",hour,minute,second);
   return 0;
}

问题 D: 【C语言1】【实验1】【课后练习】【7】两数交换

题目描述

编程实现两个整数的交换。

 输入

1,2

 输出

请输入x,y的值:交换前:x = 1 , y = 2

交换后:x = 2 , y = 1

 带填充标签的C/C++原程序

#include 
int main()
{
   int x,y,temp;                              //声明三个整型变量                              
   
   printf("请输入x,y的值:");                  //提示输入数据
   
   @#1                      //输入2个整数的值,中间用逗号分隔 

  printf("交换前:x = %d , y = %d\n", x,y );   //输出原来的x和y的值
  
  temp=x ;                                   //先把x的值藏一下                                
  x = @#2                                     // 把y的值放到x处 
  y = @#3                                   //把x的原值放到y处,那么,x的原值藏在哪里呢?
  
   printf("交换后:x = %d , y = %d\n", x,y );   //输出交换后的x和y的值  
}

 问题分析 

掌握如何交换,需要通过一个介质  t   实现~

#include 
int main()
{
    int x,y,temp;                              //声明三个整型变量                              
    printf("请输入x,y的值:");                  //提示输入数据
    scanf("%d,%d",&x,&y);                      //输入2个整数的值,中间用逗号分隔 
    printf("交换前:x = %d , y = %d\n", x,y );   //输出原来的x和y的值
    temp = x ;                                   //先把x的值藏一下                                
    x = y;                                    // 把y的值放到x处 
    y = temp;                                  //把x的原值放到y处,那么,x的原值藏在哪里呢?
    printf("交换后:x = %d , y = %d\n", x,y );   //输出交换后的x和y的值  
}

问题 E: 顺序结构11-数码互换1

题目描述

输入一个两位数,分离出个位数字和十位数字,并将其颠倒组合为一个新的两位数

 输入

58

 输出

85

 问题分析 

在学会位数分离的基础上简单操作~

#include 
int main( )
{
   int x;
   scanf("%d",&x);
   printf("%d\n",x/10+x%10*10);
   return 0;
}

问题 F: 【C语言1】求一个三位数各位数码的平方和

题目描述

任意输入一个三位整数,求该三位数各位数码平方的和

 输入

123

 输出

14

 问题分析 

在学会位数分离的基础上简单操作~

注意事项:C语言里是没有  x^2  类似这种表示x的二次方的写法的,只能写成  x*x  ,或者引用库函数    ,使用  pow函数  ,用  pow(x,2)  表示  x^2 

法一:暴力求解,用  a,b,c  存储位数, result  存储结果

#include 
int main( )
{
    int n,a,b,c,result;
    scanf("%d",&n);
    a=n/100;
    b=n/10%10;
    c=n%10;
    result=a*a+b*b+c*c;
    printf("%d\n",result);
    return 0;
}

法二:利用 循环 + 引用库函数 求解,可参考一下 

注意事项:  sum  要初始化!否则  Cfree  会输出乱码. vscode不初始化没关系,有默认值0

#include 
#include 
int main( )
{
    int n,sum=0;
    scanf("%d", &n);
    while(n)
    {
        sum += pow(n % 10, 2);
        n /= 10;
    }
    printf("%d\n", sum);
    return 0;
}

法三:利用 递归函数 求和,函数+递归的运用可以让代码看起来更简洁,不过有时候时间效率会很低,这边提一下,有兴趣的同学可以预习预习~  PS(刚接触雀氏有点难理解)C语言编程入门—顺序程序(week2)_第3张图片

#include 
#include 
int r_sum(int n,int result);
int main( )
{
    int n;
    scanf("%d", &n);
    n = r_sum(n, 0);//更新一遍n,就不申请新变量了
    printf("%d\n", n);
    return 0;
}
int r_sum(int n,int result)
{
	if(!n)	return 0;
	return pow(n%10,2)+r_sum(n/10,result);
}

 把函数  r_sum  直接放在 printf 函数里也可以的,就不需要更新 n 了   

printf("%d\n", r_sum(n, 0)); 

问题 G: (2) 数码求和(一) (----顺序程序设计)

题目描述

求整数各位数码之和

 输入

输入一个5位正整数n(n>0)

 输出

计算该数各位数码之和并输出结果

 样例输入

12345

 样例输出

15

 问题分析 

在学会位数分离的基础上简单操作~   和上一问差不多的 

一、一般办法   用  a,b,c,d,e  分别存储各个位数,再通过  sum  求和输出;

二、将  a,b,c,d,e  用数组  a[5]  代换;

三、不用数组,直接通过循环累积求解,且前两种方法受数位限制,下面附上第三种的代码:

#include 
int main()
{
    int n,sum=0;
    scanf("%d", &n);
    while(n)
    {
        sum += n % 10;
        n /= 10;
    }
    printf("%d\n", sum);
}

问题 H: (2) 一元函数求值 (----顺序程序设计)

题目描述

求数学函数f(x)=x^3+x^2+x+1的值

 输入

输入自变量x的值(x为整数 ,x<500)

 输出

输出对应的函数值

 样例输入

10

 样例输出

1111

 问题分析 

C语言编程入门—顺序程序(week2)_第4张图片这边附上一般方法,想用函数什么的其他方法可参照上文:

#include
int main()
{
    int x,y;
    scanf("%d",&x);
    printf("%d\n",x*x*x+x*x+x+1);   
    return 0;
}

问题 I: 【C语言1】【程序改错】【非实验册】【分支】【2-1】

题目描述

以下程序有语法错误,请改正

功能是计算函数:f(x)=3*x  (x能被10整除),或者 f(x)=x  (x不能被10整除)

#include
int main( )
{
   int x;

   printf("Enter x:\n");
   scanf("%d", x);
   if(0= x %10){
       y = 3* x
   }
   else {
       y = x;
   }
   printf("f(%d)=%d\n"  x y);

   return 0;
}

 输入

15

 输出

Enter x:

f(15)=15

 问题分析 

注意  = 表示赋值,  ==   才表示判断比较~

#include 
int main( )
{
   int x,y;
   printf("Enter x:\n");
   scanf("%d",&x);
   if(0 == x % 10){
       y = 3* x;
   }
   else {
       y = x;
   }
   printf("f(%d)=%d\n" , x , y );

   return 0;
}

问题 J: 【C语言1】【程序改错】【非实验册】【分支】【2-2】

以下程序有语法错误,请改正

功能是计算:如果x被10整除,则y和z的值都等于x,否则y=2*x  z=3*x 

#include
int main(void)
{
   int x, y,z;            

   printf("Enter x:\n");  
   scanf("%d", x);       
   if(0=x %10)         
       y =z = x
   else (x%10!=0)
    {
       y = x*2;            
       z=  x*3;     
   printf("y=%d\nz=%d, y, z"); 

   return 0; 
}

 输入

15

 输出

Enter x:

y=30

z=45

 问题分析 

else  后面不可以加判断条件,else if 后面才可以加

#include 
int main(void)
{
   int x, y,z;           
   printf("Enter x:\n");  
   scanf("%d",& x);       
   if(0 ==x %10)         
       y =z = x;
   else if( x%10 != 0)
    {
       y = x*2;            
       z=  x*3; 
    }
   printf("y=%d\nz=%d", y, z); 
   return 0; 
}

问题 K: 选择结构3-求绝对值2-单分支

计算整数x的绝对值

 输入

-67

 输出

67

 带填充标签的C/C++原程序

#include"stdio.h"
main()
{
    int x;
    scanf("%d",&x);
    if(@#1)
        @#2
    printf("%d",x);
} 

 问题分析 

正数不变,负数改变即可。

#include"stdio.h"
main()
{
    int x;
    scanf("%d",&x);
    if(x<0)
        x=-x;//或x*=-1; 
    printf("%d",x);
}

C语言编程入门—顺序程序(week2)_第5张图片希望对大家有点帮助~ 

C语言编程入门—顺序程序(week2)_第6张图片

你可能感兴趣的:(#,C语言编程,入门,c语言)