精华内容
下载资源
问答
  • 题目的要求是:求一元二次方程根 第一步确定一元二次方程表达式:a*x^2+b*x+c=0 第二步确定一元二次方程跟情况 第三步:判断,判断条件为——b*b-4*a*c 第四步:如果判断条件大于0,有两个根 小于0,无...

    import java.util.Scanner;
    /*
    题目的要求是:求一元二次方程的根
    第一步确定一元二次方程的表达式:a*x^2+b*x+c=0
    第二步确定一元二次方程跟的情况
    第三步:判断,判断的条件为——b*b-4*a*c
    第四步:如果判断的条件大于0,有两个根
                        小于0,无实数解
                        等于0,有两个相同的解
    第五步:编写代码
     */
    class Demo01{
        public static void main(String[] args){
            Scanner input=new Scanner(System.in);
            System.out.print("Enter a, b, c:");//输入一元二次方程的三个参数
            double a=input.nextDouble();
            double b=input.nextDouble();
            double c=input.nextDouble();
            double x,y;//两个未知变量
            /*
            if-else语句
             */
            if((b*b-4*a*c)>0){
                x=(-b+Math.pow((b*b-4*a*c),0.5))/2*a;
                y=(-b-Math.pow((b*b-4*a*c),0.5))/2*a;
                System.out.println("x=" + x + " , " + "y=" + y);
            } else if((b*b-4*a*c)==0){
                x=(-b+Math.pow((b*b-4*a*c),0.5))/2*a;
                y=x;
                System.out.println("x=" + x + " , " + "y=" + y);
            }else{
                System.out.println("无实数解");
            }
    
        }
    }

    运行结果:

    PS F:\JavaSE\Day03> javac Demo01.java
    PS F:\JavaSE\Day03> java Demo01
    Enter a, b, c:4 2 5
    无实数解

    import java.util.Scanner;
    /*
    题目要求;知道当天为星期几,再输入多少天之后为星期几
    第一步:题目要求0表示的是星期日,1、2、3、4、5、6个表示当天为星期几
    第二步:如果今天是0,并且输入的还是7的倍数,那么这些天之后还是0
            如果今天是1,则就是1加上做输入的天数再对7取余,那么这些天之后就是取余之后的数
     */
    class Demo03{
        public static void main(String[] args){
            Scanner input=new Scanner(System.in);
            System.out.print("Enter today's day:");//输入今天日期的数字
            int num1=input.nextInt();
            System.out.print("Enter the number of days elapsed since today:");//提示用户输入今天之后的天数
            int num2=input.nextInt();
            for(int i=0;i<=6;i++){
                /*
                if条件语句
                 */
                if(num1==0){
                    System.out.println("几天之后为:星期"+num2%7);
                    break;
                }
                if(num1>=1&&num1<=6){
                    if(num2>=7){
                        System.out.println("几天之后为:星期"+num1);
                        break;
                    }else if(num2==7-num1){
                        System.out.println("几天之后为:星期日");
                        break;
                    }else{
                        num2=num2+num1;
                        if(num2>=7){
                            System.out.println("几天之后为:星期"+num2%7);
                            break;
                        }else{
                            System.out.println("几天之后为:星期"+num2);
                            break;
                        } 
                    }
                }
               
            }
        }
    }

    运行结果:

    Enter today's day:4
    Enter the number of days elapsed since today:56
    几天之后为:星期4

    import java.util.Scanner;
    /*题目要求:输入一个数字,判断该数字是否为回文数
    回文数——就是从左往右,再从右往左数值的大小不变
    第一步:先输入一个数,随便输入一个数,不管该数为几位数
    第二步:首先得确定该数是几位数——while(num!=0){
                                        循环体num/10
                                        count++;记录数值的位数
                                    }
    第三步:如何判断该数(123)为回文数----先确定该数的反序数;321
            a=num%10  个位=3            ((个位)*10+十位)*10+百位     以此类推
            num=num/10
            num%10      十位=2
            num=num/10
            num%10      百位=1
            num=num/10
    第四步:编写代码
    */
    class Demo04{
        public static void main(String[] args){
            Scanner input=new Scanner(System.in);
            System.out.print("Enter a three-digit integer:");
            int num=input.nextInt();
            int temp1=num,temp2=num;//暂存输入的数
            int sum=0;//存放反序数
            /*
            if((num%10)==(num/100)){
                System.out.println(num+" is a palindrome.");
            }else{
                System.out.println(num+" is not a palindrome.");
            }
            */
            int count=0;//记录该数的位数
            while(num!=0){
                num=num/10;
                count++;
            }
            //求输入数的数的反序数
            for(int i=1;i<=count;i++){
                sum=sum*10+temp1%10;
                temp1=temp1/10;
            }
            //用反序数与输入的数作比较
            if(temp2==sum){
                System.out.println(temp2+" is a palindrome.");
            }else{
                System.out.println(temp2+" is not a palindrome.");
            }
    
        }
    }

    运行结果:

    Enter a three-digit integer:121
    121 is a palindrome.

    import java.util.Scanner;
    /*
    题目要求:采拳游戏
    石头     0       剪刀      1        布       2
    系统产生的随机数——————调用数学函数Math.random();该函数产生的是0到1.0的随机数,而且默认的是double型
    因此必须得强制进行数据类型的转化
    第一步:确定用户赢的可能————用户赢
            用户0  系统1
            用户1  系统2
            用户2  系统0
    第二步:如果用户与系统相同——————平手
    第三步:其余系统赢
    第四步:编写代码
     */
    class Demo06{
        public static void main(String[] args){
            Scanner input=new Scanner(System.in);
                System.out.print("scissor(0) ,rock(1) ,paper(2):");
                int num1=input.nextInt();
                int num2=(int)(Math.random()*3);//系统所产生的随机数
                if(num1==num2){
                    System.out.println("平手");
                }else if(num1<num2){
                    System.out.println("你赢了");
                }else if(num1==2&&num2==0){
                    System.out.println("你赢了");
                }else{
                    System.out.println("你输了");
                }
        }
    }

    运行结果:

    scissor(0) ,rock(1) ,paper(2):2
    你赢了

    import java.util.Scanner;
    /*
    题目要求:求两点之间的距离
    
    第一步:明确两点之间的距离公式————Math.pow((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2),0.5);
    第二步;确定条件——如果两点之间的距离大于半径,即在圆外,反之,在圆内。
    第三步:写代码
     */
    class Demo08{
        public static void main(String[] args){
            Scanner input=new Scanner(System.in);
            System.out.print("Enter a point with two coordinates:");//输入一个坐标点
            double x=input.nextDouble();
            double y=input.nextDouble();
            if(Math.pow((x*x+y*y),0.5)<=9){//判断条件
                System.out.println("Point (" + x + "," + y + ") is in the circle.");
            }else{
                System.out.println("Point (" + x + "," + y + ") is not in the circle.");
            }
        }
    }

    运行结果:

    Enter a point with two coordinates:2 5
    Point (2.0,5.0) is in the circle.

     

    import java.util.Scanner;
    /*
    题目要求:根据输入的行数,进而打印如下图形:先打印五行——
    空格数:1   2   3   4   
                            1                       1
                        2   1   2                   2
                    3   2   1   2   3               3
                4   3   2   1   2   3   4           4
            5   4   3   2   1   2   3   4   5       5
    ........
    经上面的分析可得:该图形总共有5行: ————每一行都是由空格和具体的数字所组成。
    
                    空格数是随着行数的增加而减一,因此该代码可写成:
                    for(int i=1;i<=5;i++){//i表示的是所打印的行数
                        for(int k=1;k<=5-i;k++){//k表示所打印的空格数
                            System.out.print("  ");
                        }
                    }
    
    
                    由上面可知,每一行的空格已打印,但是每一行的数字存在什么规律,以及每一行数字所要打印的个数:
            1   2   3   4   
    1                       1                        1
    3                   2   1   2                    2
    5               3   2   1   2   3                3
    7            4   3   2   1   2   3   4           4
    9        5   4   3   2   1   2   3   4   5       5
    
            -4  -3  -2  -1  0   1   2   3   4           x-(0)       1
                                                        x-(-1~1)    3
                                                        x-(-2~2)    5
                                                        x-(-3~3)    7
                                                        x-(-4~4)    9
                                                        
    ........
    
    因此由上面分析得每一行所打印数字的个数为1-i ~ i-1
            并且每一行所对应的数值为坐标的绝对值加一------因此代码可写为:
            for(int m=1-i;m<=i-1;m++){
                System.out.print(Math.abs(m)+1);
            }
    [注:再下来就是格式的要求——由于每一行所打印的数值所占的大小为两个空格大小,因此就有输出的格式要求——————代码就可改为:
            System.out.printf("%2d",Math.abs(m)+1);
    ]
    切记:每一行打印完之后必须换行——System.out.println();
    
    最后如果改成输入多少行就打印多少行,则只需改代码中的数字五变成一个变量。
     */
    class Demo14{
        public static void main(String[] args){
            Scanner input=new Scanner(System.in);
            System.out.print("Enter the number of lines:");
            int num=input.nextInt();
            for(int i=1;i<=num;i++){
                for(int j=1;j<=num-i;j++){
                    System.out.print("  ");
                }
                for(int k=1-i;k<=i-1;k++){
                    System.out.printf("%2d",(Math.abs(k)+1));
                }
                System.out.println();
            }
        }
    }

     运行结果:

    Enter the number of lines:5
             1
           2 1 2
         3 2 1 2 3
       4 3 2 1 2 3 4
     5 4 3 2 1 2 3 4 5

     

    /*
    题目要求:总共打印8行,用五行分析一下解题思路吧;打印如下图形:
    空格数:1   2   3   4   
                            1                       1
                        1   2   1                   2
                    1   2   4   2   1               3
                1   2   4   8   4   2   1           4
            1   2   4   8  16   8   4   2   1       5
    ........
    经上面的分析可得:该图形总共有5行: ————每一行由空格和具体的数字组成。
                    空格数是随着行数的增加而减一,因此该代码可写成:
                    for(int i=1;i<=5;i++){//i表示的是所打印的行数
                        for(int k=1;k<=5-i;k++){//k表示所打印的空格数
                            System.out.print("  ");
                        }
                    }
    
    
                    由上面可知,每一行的空格已打印,但是每一行的数字存在什么规律,以及每一行数字所要打印的个数:
            1   2   3   4   
    1                        1                       1
    2                    1   2   1                   2
    3                1   2   4   2   1               3
    4            1   2   4   8   4   2   1           4
    5        1   2   4   8  16   8   4   2   1       5
    
            2^0 2^1 2^2 2^3 2^4 2^3 2^2 2^1 2^0
            -4  -3  -2  -1  0   1   2   3   4           x-(0)       1
                                                        x-(-1~1)    3
                                                        x-(-2~2)    5
                                                        x-(-3~3)    7
                                                        x-(-4~4)    9
                                                        
    ........
    
    因此由上面分析得每一行所打印数字的个数为1-i ~ i-1
            并且每一行随打印的数值都是2的次幂,次幂的规律而是从0~4~0
        第五行———— 所对应的坐标的绝对值与行数差了一个1
        第四行———— 所对应的坐标的绝对值与行数差了一个1
        第三行———— 所对应的坐标的绝对值与行数差了一个1
        .......以此类推
        因此在坐标的绝对值的基础上再加一个1与行数相等,正它们的差刚好是所对应每一行所要打印的第一个数值的次幂数,即2^(坐标的绝对值的基础上再加一个1与行数的差)
        
        ------因此代码可写为:
            for(int m=1-i;m<=i-1;m++){
                System.out.print(Math.abs(m)+1);
            }
    [注:再下来就是格式的要求——由于每一行所打印的最高位数值所占的大小为三个空格大小,因此就有输出的格式要求——————代码就可改为:
            System.out.printf("%3.0f",Math.pow(2,i-1-Math.abs(k)));
    
    特别提醒:为什么格式输出是%3.0f,因为Math.pow()——所执行的结果直接为double型,所以为%f,至于4,就是所输出的值所占的空格大小。
    ]
    
    
    最后如果改成输入多少行就打印多少行,则只需改代码中的数字五变成一个变量。
    */
    class Demo16{
        public static void main(String[] args){
            for(int i=1;i<=5;i++){//i表示的是行数
                for(int j=1;j<=5-i;j++){
                    System.out.print("    ");
                }
                for(int k=1-i;k<=i-1;k++){
                    System.out.printf("%4.0f",Math.pow(2,i-1-Math.abs(k)));
                }
                System.out.println();
            }
        }
    }

     运行结果:

                  1
               1  2  1
            1  2  4  2  1
         1  2  4  8  4  2  1
      1  2  4  8 16  8  4  2  1

     

    import java.util.Scanner;
    /*
    当输入若干个数字时,在内存中的调用机制————例:
        输入的数字为:1 2 3 4 5 6 0
                    nextDouble();———下一个为1
        1           
                    nextDouble();———下一个为2
        2
                    nextDouble();———下一个为3
        3
                    nextDouble();———下一个为4
        4
                    nextDouble();———下一个为5
        5
                    nextDouble();———下一个为6
        6
                    nextDouble();———下一个为0
        0————表示的是循环结束的条件
    
        对于当输入的数字存放在所定义的num中时————int num=nextInt();
            nextInt();表示的是存放下一个数字
            当用户输入入若干个数字时,这些数字先存放在一个临时存储区,等待被调用
            因此对于While循环来说——形如:
            System.out.print("Enter an integer,the input ends if it is 0:");
            while(true){
                double num=input.nextDouble();
                if(num==0){
                    break;
                }
            }
        运行过程如下:
            先是num=1;  与0做判断,如果等于0,跳出循环,否则num=2;再判断,以此类推。
     */
    class Demo11{
        public static void main(String[] args){
            Scanner input=new Scanner(System.in);
            int pos=0;//存放的是大于0的数
            int neg=0;//存放的是小于0得数
            double sum=0;//求和
            System.out.print("Enter an integer,the input ends if it is 0:");
            while(true){
                double num=input.nextDouble();
                if(num!=0){
                    sum+=num;
                    if(num>0){
                        pos++;
                    }else{
                        neg++;
                    }
                }else{
                    break;
                }
            }
            System.out.println("The number of positives is "+pos);
            System.out.println("The number of negatives is "+neg);
            System.out.println("The total is "+sum);
            System.out.println("The average is "+sum/(pos+neg));
        }
    }

    未完待续············

    展开全文
  • 使用循环语句,依次通过索引获取元素即可遍历数组。 2、在打印数组元素时,是以空格分隔,并且不换行,该怎样输出? 解题方案 for循环遍历数组 package day21; public class Deom01 { public static void

    题目1(训练)

    请创建一个长度为6的整数数组,并为数组中的元素赋值。遍历数组,打印所有元素,元素之间用空格隔开。比如:

    数组为:{1,2,3,4,5}
    打印结果:1 2 3 4 5 
    

    训练提示

    1、数组中的元素有索引,开始索引和结束索引分别是什么?使用循环语句,依次通过索引获取元素即可遍历数组。

    2、在打印数组元素时,是以空格分隔,并且不换行,该怎样输出?

    解题方案

    for循环遍历数组

    package day21;
    
    public class Deom01 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    int[] arr=new int[] {1, 2, 3, 4, 5,};
     
    for (int i = 0; i < arr.length; i++) {
    	System.out.print(" "+arr[i]);
    }
    	}
    
    }
    
    

    题目2(训练)

    现有一个小数数组{12.9, 53.54, 75.0, 99.1, 3.14}。请编写代码,找出数组中的最小值并打印。

    训练提示

    1、数组的元素是小数,需要定义小数类型数组。

    2、找最值需要先定义一个参考值,然后依次拿每个值与参考值比较即可。

    解题方案

    将数组的第一个值作为参考值,遍历数组,依次比较,记录更小值。

    package day21;
    
    public class Deom03 {
    
    	public static void main(String[] args) {
    		double [] arr={12.9, 53.54, 75.0, 99.1, 3.14};
    		double min=arr[0];
    		double max=arr[0];
    		for (int i = 1; i < arr.length; i++) {
    		if (min>arr[i]) {
    			min=arr[i];
    		}
    	   }
    		System.out.println("最小值:"+min);
    		}
    	}
    
    

    题目3 (训练)

    创建一个长度为6的整数数组。请编写代码,随机生成六个0(包含)-100(不包含)之间的整数存放到数组中,然后计算出数组中所有元素的和并打印。

    训练提示

    1、数组有6个元素,那么就要生成6次随机数。

    2、要求所有元素的和,首先需要定义变量来存储求和结果,然后再获取所有元素,依次累加就可以了。

    解题方案

    定义求和变量,遍历数组,累加元素值。

    操作步骤

    1、定义长度为6的int数组。

    2、创建随机数Random类对象。

    3、遍历数组,在循环中生成随机数并给数组元素赋值。

    4、定义求和变量,初始化值为0。

    5、遍历数组,获取每一个元素,累加。

    6、遍历结束,打印结果。

    package day21;
    import java.util.Random;
    public class Deom4 {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int[] arr = new int[6];
    		int m=0;
    		for (int i = 0; i <6; i++) {
    			Random r=new Random();
    			int num = r.nextInt(100);	
    		    arr[i]=num;	
    		    m+=arr[i];	
    		    //System.out.println("数为:" + num);
    		    System.out.println("第" + (i + 1) + "数为:" + arr[i]+" ");
    		}
    		
    		System.out.println("六个数的和:" + m);
    	}
    
    }
    
    
    

    题目4(训练)

    现有一个整数数组,数组中的每个元素都是[0-9]之间的数字,从数组的最大索引位置开始到最小索引位置,依次表示整数的个位、十位、百位。。。依次类推。请编写程序计算,这个数组所表示的整数值。例如:

    数组:{2, 1, 3, 5, 4}
    表示的整数为:21354 // 注:是整数类型的两万一千三百五十四,不是字符串拼起来的。
    

    训练提示

    1、首先肯定要获取数组的每一个元素,需要遍历。

    2、根据题目分析,个位元素本身就可以表示值,十位是元素乘以10来表示值,百位就是元素乘以100来表示值。。。它们之间有什么规律呢?从左至右,每一位所表示的值是下一位的十倍。根据此规律,怎样编写算法实现呢?

    解题方案

    遍历数组,与求和的思路相似,但算法不同,累加时需要将高位*10再累加。

    操作步骤

    1、定义int类型数组,使用静态初始化,将数字存入数组。

    2、定义变量num用来存储最终的数值。

    3、对数组进行遍历,遍历开始索引是0,结束索引是arr.length-1。

    4、在循环中,把num的值乘10再加上元素的值,赋值给num变量。

    5、循环上面的步骤,num的值即为所求,打印结果。

    package day21;
    
    import java.util.Random;
    
    public class Deom5 {
    
    	public static void main(String[] args) {
    		int[] arr = new int[5];
            int num = 0;
            int y = 0;
            int count = 0;
            Random random = new Random();
            for (int i = 0; i < arr.length-1; i++) {
                y = random.nextInt(10);
                arr[i] = y;
                System.out.println("第" + (i + 1) + "数为:" + arr[i]+" ");
                count++;
                if (count % 5 == 0) {
                    System.out.println();
                }
            }
            for (int x = 0; x < arr.length-1; x++) {
                num = num * 10 + arr[x];
            }
            System.out.println("这个整数为:" + num);
        }
    }
    

    题目5(训练)

    定义一个数组来存储10个学生的成绩,例如:{72, 89, 65, 87, 91, 82, 71, 93, 76, 68}。计算并输出学生的平均成绩。

    训练提示

    1、要操作数组的每一个元素,需要遍历。

    2、怎样求平均数?其实只要求和之后也就知道了平均数。

    解题方案

    使用数组的遍历操作完成。

    操作步骤

    1. 定义保存学生成绩的数组arr。
    2. 定义变量sum用来存储和。
    3. 对数组进行遍历,求和。
    4. 和除以元素个数得到平均数。
    5. 打印结果。

    package day21;
    
    public class Deom06 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    	int []a={72, 89, 65, 87, 91, 82, 71, 93, 76, 68};
    	double sum;
    	sum=0;
    	for (int i = 0; i < a.length; i++) {
    		sum=sum+a[i];
    	}
    	System.out.println("平均成绩为:"+sum/a.length);
    		}
    	
    	}
    
    

    题目6(训练)

    有一个数组,其中有十个元素从小到大依次排列 {12,14,23,45,66,68,70,77,90,91}。再通过键盘录入一个整数数字。要求:把数字放入数组序列中,生成一个新的数组,并且数组的元素依旧是从小到大排列的。执行效果如下:

    请输入一个整数数字:
    50
    生成的新数组是:12 14 23 45 50 66 68 70 77 90
    

    训练提示

    1. 数组的长度是不能改变的,所以增加一个元素需要定义一个新数组。
    2. 数组元素是从小到大排列的,如何找到新元素存放的位置?

    解题方案

    ​ 使用数组的遍历,用元素依次和数字作比较,找到正确的存放位置。

    操作步骤

    1. 定义原数组arr,和一个比原数组长度大1的新数组brr。
    2. 通过键盘录入的方式输入变量num的值。
    3. 定义变量index用于记录num存放的索引位置。
    4. 遍历数组,小于或等于num的元素直接存放到原来的位置,大于num的元素往后移动一个位置。
    5. 存放结束之后,中间会空出一个位置,在遍历时用index记录这个位置。把num放在这个索引处。
    6. 最终遍历新数组打印结果。

    
    

    题目7(综合)

    小李用自己的钱买了十只股票,年末他看了各只股票的收益分别是10.4%,-3%,-6.2%,1.2%,-6.1%,-19%,-3.8%,0.9%,-4.5%,5.5%。请使用数组相关知识编程,帮他统计赚钱的股票和赔钱的股票分别有多少只?打印效果如下:

    赚钱的股票一共有:4只
    赔钱的股票一共有:6只
    

    训练提示

    1. 有多只股票,可以使用数组来存储。
    2. 股票收益为小数,所以数组类型应该是小数。
    3. 需要定义两个变量来分别存储统计的个数。

    解题方案

    1. 使用数组的遍历,判断每个股票的收益是正值还是负值,分别统计。

    操作步骤

    1. 定义小数数组存储十只股票的收益值。
    2. 定义变量count1用于存储赚钱股票的个数,初始值是0。
    3. 定义变量count2用于存储赔钱股票的个数,初始值是0。
    4. 遍历数组判断,如果收益大于0则count1加一,如果收益小于0则count2加一。
    5. 遍历结束后打印两个变量值。

    题目8(综合)

    定义一个数组其中包含多个数字。用自己的方式最终实现,奇数放在数组的左边,偶数放在数组的右边。(可以创建其他数组,不必须在原数组中改变)

    训练提示

    1. 要找奇数和偶数只需要判断对2取余即可。
    2. 找到一个奇数或偶数之后,把它放在哪个索引处?

    解题方案

    1. 定义一个新数组。把原数组的奇数放在新数组的左边,把原数组的偶数放在新数组的右边。

    2. 不定义新数组。找到左边的偶数,和右边的奇数互换位置。

      以下以方案1为准

    操作步骤

    1. 定义出原数组arr,其中包含多个数字。
    2. 定义新数组brr,和arr的长度一样。
    3. 定义变量left,初始值是0准备从左边放元素,定义变量right,初始值是arr.length-1准备从右边放元素。
    4. 对原数组arr进行遍历。
    5. 如果元素是奇数,则放在新数组brr的左边,left变量加一。
    6. 如果元素是偶数,则放在新数组brr的右边,right变量减一。
    7. 遍历新数组brr打印最终结果。

    展开全文
  • for example:for i=1:3 subplot(3,1,i);...end 为了使这个循环语句中图标题也是循环实现,即名字和循环 i 有关,用上面title('第r(i)个IMF');显然不能实现。原因是:tittle(‘ ’);‘ ’中不能是...


    for example:

    for i=1:3
     subplot(3,1,i);
     plot(t,imf1(i,:));
     xlim([0 (n-1)/fs]);
     ylim([-2 2]);
    title('第r(i)个IMF');
    end 


    为了使这个循环语句中图的标题也是循环实现的,即名字和循环 i 有关,用上面的title('第r(i)个IMF');显然不能实现。

    原因是:tittle(‘ ’);‘ ’中不能是变量

     这时,

     应该使用num2str函数将循环变量改为string类型。使用strcat将多个string连接。

     titleName = strcat('第',num2str(i),'个IMF分量');

     title(titleName);
    展开全文
  • 为什么不do里面不继续循环 [img=https://img-bbs.csdn.net/upload/202101/07/1609983053_276140.png][/img]
  • c语言编程题for循环语句,简单C语言循环语句编程题目!c语言编程题for循环语句,简单C语言循环语句编程题目!匿名网友:1.作为示例,以求解下面数学式为例:SUM = 1 - 3 + 5 - 7 + ...-99 + 101;首先,需要分析数学规律...

    导航:网站首页 >

    c语言编程题for循环语句,简单C语言循环语句编程题目!

    c语言编程题for循环语句,简单C语言循环语句编程题目!

    匿名网友:

    1.作为示例,以求解下面数学式为例:SUM = 1 - 3 + 5 - 7 + ...-99 + 101;首先,需要分析数学规律,就数学式中每一项的绝对值而言,可以看成 a(n) = 2 * n - 1 其中,n = {1,2,3...51},而就每一项的符号而言,可以发现,当 n 为偶数时,对应的项为负号;当 n 为奇数时,对应项符号为正号。

    2.建立工程、文件,简单配置,编写如下代码:#include int main(void){int sum,s;int i;sum = 0;for(i=1;i{if(i%2==0){s = -1;}else{s = 1;}sum += (2*i-1)*s;}printf("sum of (1-3+5-7+...-99+101) is: %d\n",sum);return 0;}其中,s 就是符号控制,其中for循环累加每一项。

    3.编译、链接、运行程序,运行结果如下所示,可以看到运行结果SUM = 51.4.合理运用for循环可以简化代码设计,增强代码可读性,缩减代码篇幅,利用循环可以处理重复并且有规律性的问题,比如规则图形的打印,数组遍历、对象赋值等,合理运用for循环需要先理解for循环的语法:for表达式1;表达式2;表达式3{循环体}END

    匿名网友:

    //猜数字游戏 先生成一个数字 再让用户循环6次输入数字#include "stdafx.h"#include "time.h"#include "stdlib.h"#define COMPETOR_NUM_LIST "谁最荡漾?!\n0-面包\n1-水饺\n2-可乐\n3-鸡翅\n4-达达\n5-拉姆\n6-寿司\n7-苞米\n8-糖果\n9-冰激凌\n"int random();int random)//函数声明{int num;//int变量,记录获得的数字num = rand()%11;//赋值return num;//返回得到的数字}void main(){int i,result,inputed,ifcontinue;//i为计数变量,result会得到的随机数字,inputed为用户输入文字 ifcontinue记录用户是否还要继续srand( (unsigned)time( NULL ) ;//加速数字生成printf("%s",COMPETOR_NUM_LIST);//讲人物编号打出printf"初始化完毕..请输入一个编号允许你猜5次,5次若都失败程序将会结束\n";//请用户输入数字result=random);//赋值for(i=0;i<=5;i++)//循环开始{//printf("%d\n",result);scanf("%d",&inputed);//得到用户输入的文字//printf("%d\n",inputed);if(inputed==result){//如果用户输入的问题=随机数字printf"对了!最荡漾的人就是%d.是否继续?0/1\n",inputed;//输出结果scanf("%d",&ifcontinue);//得到用户是否继续if(ifcontinue==0)//0就继续{main);//执行main函数}break;//瑞出循环}printf"猜错了哦...请再试一遍\n";//错误信息if(i==5){printf"正确答案是:%d\n",result;}}system("pause");//暂停控制台}

    匿名网友:

    第一题:此数列为"费伯纳契序列" 代码:#include<stdio.h> int main() {int result; int start100; int i;start1=1; start2=2; for(i=1;i<=100-2;i++) { starti+2=starti+starti+1; } printf("%d\n",starti+2); return 0;}效果图:第二题:代码:#include <stdio.h>int main(){double count_1=0,count_2=0;double num=0;scanf("%lf",&num);count_1=6*num*num;count_2=num*num*num;printf"表面积:%lf\n体积:%lf\n",count_1,count_2; return 0;}效果图:【酷_酷_币】为您服务...

    匿名网友:

    #include <stdio.h>void main(){int i=0,j=0;for(i=0; i<4; i++){for(j=0;j<=2*i;j++){printf("*");}printf("\n");}printf"图一\n";for(i=0; i<4; i++) {for(j=0;j<4;j++)printf("*");printf("\n");}printf"图二\n";}

    匿名网友:

    自己加:#include /*1、输出1-20*/int main(int argc, char **argv){int max =20;int i;for(i=1;iprintf("%d ",i);}/*2、输出20-1*/int main(int argc, char **argv){int max =20;int i;for(i=max;i>0;i--)printf("%d ",i);}/*3、输出A-Z*/int main(int argc, char **argv){char min='A',max='Z';char i;for(i=min;iprintf("%c ",i);if((i-min+1)%8 == 0)printf("\n");}}/*4、输出100~200之间所有能被3和7整除的数每行输出4个数*/int main(int argc, char **argv){int min=100,max =200;int i,c;for(i=min,c=0;iif((i%3 == 0 )&&(i%7 ==0))printf("%d",i);c++;if(c%4 == 0)printf("\n");}}/*5、输出1至1000之间所有满足用3除余2、用5除余3、用7除余2的数要求每行只输出5个数*/int main(int argc, char **argv){int min=1,max=1000;int i,c;for(i=min,c=0;iif((i%3 ==2)&&(i%5 == 3)&&(i%7 == 2)){printf("%d ",i);c ++;if(c%5 == 0)printf("\n");}}}/*6、求前n个偶数和*/int main(int argc, char **argv){int n;int i,sum;do{printf("Please input a number(>0):");scanf("%d",&n);}while(n>0);for(i=1,sum=0;isum += 2*i;printf("sum=%d",sum);}/*7、求1+1/2+……+1/200*/int main(int argc, char **argv){int i;float sum;for(i=1,sum=0;isum += 1.0/i;printf("sum=%f",sum);}/*8、求1-3+5-7+……-99+101*/int main(int argc, char **argv){int max=101;int i,sum,flag;for(i=1,sum=0,flag=1;isum += flag*i;flag *= -1;}printf("sum=%d",sum);}

    匿名网友:

    c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句.for表达式 1;表达式 2;表达式 3语句它的执行过程如下:(1)先求表达式 1.(2)求表达式2,若其值为真值为非0,则执行for语句中指定的内嵌语句,然后执行下面第三步 做若为假值为0,则结束循环,转到第5步.(3)求解表达式3(4)转回上面第2步骤继续执行;(5)结束循环,执行for语句下面的一个语句;for循环变量赋初值;循环条件;循环变量增值语句如for(i=1;i<=100;i++)sum=sum+i; 它的执行相当于i=1; while(i<=100){ sum=sum+i; i++; } 显然,用for语句更简单、方便。

    说明:(1)for语句的一般形式中的"表达式1"可以省略,此时应在for语句之前给循环变量赋初值.注意省略表达式1时,其后的分号不能省略.如for(;i<=100;i++){....};(2)如果表达式2省略 即不判断循环条件,循环无终止地循环下去,也就是认为表达式2始终为真.例如:for(i=1;;i++){.....};相当于i=1; while(1) {sum=sum+1; i++; } (3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束.如:for(i=1;i<=100;) {sum=sum+1; i++; } 这个例子的循环增量没有放在表达式三的位置 而是作为循环体的一部分 其效果是一样的.(4)可以省略表达式1和表达式3,只有表达式2即只给循环条件.如for(;i<=100;) { sum=sum+i; i++; } 这个相当于 whlie(i<=100) { sum=sum+i; i++; } (5)三个表达式都可以省略,如:for;;)语句相当于while(1)语句即不设初值 不判断条件认为表达式2为真值循环变量不增值,无终止的执行循环体.(6)表达式1也可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式.如:for(sum=0;i<=100;i++) { sum=sum+i; } for(sum=0,i=0;i<=100;i++) { sum=sum+i; }

    问题推荐

    展开全文
  • 1.一些for循环的变种 #include&lt;stdio.h&gt; int main() { //变种1 for(;;)//无限循环 { printf("hhhh\n"); } //变种2(输出x和y是多少?) int x,y; for(x=0,y=0;x&lt;2,y&...
  • 循环语句 while循环,只要条件满足,就不断循环 while 条件表达式: 条件表达式为真时执行代码 #判断如果输入数字是纯数字,就不输入了 b =True while b:  a = raw_input('请输入一个数字:')  if a.isdigit():...
  • 循环语句 while循环,只要条件满足,就不断循环 while 条件表达式: 条件表达式为真时执行代码 for 循环 第一种:for in 序列。通过序列项迭代,类似于Java中for each list、tuple 不足: 如果...
  • 循环语句

    2021-04-12 16:15:57
    这里写目录标题一、循环语句while循环题目案例1.打印1到102.计算从1到10和3.计算5!4.计算1!+2!+3!+4!+5!for 循环题目案例1.打印1到102.计算从1到10和3.计算5!4.计算1!+2!+3!+4!+5! 一、循环语句 while循环 ...
  • 循环语句的总结

    2018-03-01 21:47:37
    今天,我正式开始学习一种全新语句:循环语句循环语句利用计算机计算快等特点来对指定代码进行快速循环运算。这个特点与我们平常杰出数学思维大有不同,我们会尽量用简单思维来对题目进行一个准确地表达,让...
  • 设计一个简单猜数游戏:随机产生一个1-100数,要求输入数与随机产生数进行比较,如果输入数大于随机产生数,提示:“对不起,您猜大了!”;如果输入数小于随机产生数,提示:“对不起,您猜小了!...
  • P57 056带标签break和continue goto关键字很早就在程序设计语言中出现。...对Java来说唯一用到标签地方是在循环语句之前。而在循环之前设置标签唯一理由是:我们希望在其中嵌套另一个循环,由于break
  • 一、While循环语句 1、格式  while(条件表达式){ 执行语句; } 2、要点  1,先判断后执行  2,循环次数不定  3,避免死循环 3、举例 题目1:输出0-100之间所有数 1 class Demo3 2 { 3 ...
  • break语句的题目

    2018-11-10 15:58:45
    用break语句实现求100以内正整数中为15倍数最大数 #include &lt;stdio.h&gt; main(){ int n=1,m;//利用n来控制次数同时作为1-100之间数 while(1){//造成无限循环 if(n%15==0) m=n;//m作为存放...
  • 关于用for循环语句实现在屏幕上打印特殊图案入门级编程题目的解法 (编程小白,目前大学本科在读,最近在学习c语言,记录一下学习心得,若有写不对,还望大佬们指正) (题目来源于牛客网题库)链接:...
  • 1.用循环语句实现1-1000中所有偶数和 看到题目,我们需要分析和理解题意,它要求1-1000中所有偶数和,那偶数是哪些呢?2,4,6,8,…,1000都是偶数,那我们怎么判断它是不是偶数呢? 我们可以用一个if语句实现...
  • 美丽for循环语句

    2016-02-29 23:05:00
    题目:用for循环语句实现四个三角形不同形状。 图案: ---------------第一个三角形图形形状----------------**********第二个三角形图形形状---------------- * ** *******第三个三角形图形形状-------------...
  • for循环语句

    2012-11-16 16:23:48
    关于for循环的一些题目
  • 标题:循环语句的嵌套,控制执行顺序语句巩固。 内容:(A):(1)编程题目的练习50% (2)break语句80%,goto语句20% (3)百度上找的编程图案    ( B ):(a)break语句除了在switch语句中用于跳出switch结构外还...
  • JAVA循环语句的实例

    2020-12-19 20:42:56
    题目:给出一个不多于5位正整数,要求:(1)判断它是几位数 (2)求各位数字之和 (3)逆序打印出各位数字 import java.util.*; public class p1{ public static void main(String[] args){ Scanner reader=new ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,669
精华内容 667
关键字:

循环语句的题目