美文网首页
5 -7作业汇总

5 -7作业汇总

作者: cGunsNRoses | 来源:发表于2017-10-09 22:43 被阅读0次

    知识点:

    注:int类型默认32位有大小范围  且第一位为符号位 0 为正 1 为负


    8.4作业

    A:1、风力预警系统有如下标准:普通风力小于5级,为蓝色;大于5小于8,为黄色;大于8小于10为橙色;大于10位红色。如果风为龙卷风或台风等特殊情况,大于8级即为红色,实现上述判定标准,输入风力级别,输出预警颜色,输入风类别为:龙卷风,台风,自然风

    特殊情况 用户输入是否是龙卷风 再作判断

    //     Console.WriteLine ("输入风的种类,1为普通风,2为特殊风");

    // int m = int.Parse(Console.ReadLine ());

    // Console.WriteLine ("输入风级:");

    // int windFoce= int.Parse(Console.ReadLine());

    //

    // switch (m) {

    // case 1:

    // {

    //

    // if (windFoce < 5) {

    // Console.WriteLine ("蓝色");

    // } else if (windFoce >= 5 && windFoce < 8) {

    // Console.WriteLine ("黄色");

    // } else if (windFoce >= 8 && windFoce < 10) {

    // Console.WriteLine ("橙色");

    // } else if (windFoce >= 10) {

    // Console.WriteLine ("红色");

    // }

    // break;

    // }

    // case 2:

    // {

    // if (windFoce >= 8) {

    // Console.WriteLine ("红色");

    // }

    // break;

    // }

    // }

    2、实现一个程序,控制台实现如下效果,现在控制台输出如下语句

    请输入编号选择您想购买的商品:

    1、笔      2、作业本    3、橡皮擦     4、直尺

    用户输入编号后打印出用户选择的商品

    Console.WriteLine("请输入编号");

    // int n = int.Parse(Console.ReadLine());

    // switch (n) {

    // case 1:

    // {

    // Console.WriteLine ("笔");

    // break;

    // }

    // case 2:

    // {

    // Console.WriteLine ("作业本");

    // break;

    // }

    // case 3:

    // {

    // Console.WriteLine ("橡皮擦");

    // break;

    // }

    // case 4:

    // {

    // Console.WriteLine ("直尺");

    // break;

    // }

    //

    // }

    B:3、实现在控制台输入数据n, 计算n并打印出n的阶乘;

    while做法

    Console.WriteLine("输入数字");

    Int64 n = int.Parse (Console.ReadLine ());

    int a = 1;

    Int64 sum = 1;

    while (a < n + 1) {

    if (n == 0) {

    Console.WriteLine ("{0}",0);

    }

    sum *= a;

    a++;

    Console.WriteLine ("{0}",a);

    }

    Console.WriteLine ("{0}",sum);

    for做法

    Console.WriteLine("输入数字");

    Int64 n = int.Parse (Console.ReadLine ());

    Int64 sum = 1;

    if (n == 0) {//当n = 0的情况

    sum = 0;

    } else {

    for (Int64 i = 1; i <= n; ++i) {

    sum *= i;

    }

    }

    Console.WriteLine ("{0}",sum);

    注:int类型默认32位有大小范围  且第一位为符号位 0 为正  1为负

    00000000 00000000 00000000 00000000

    4、从控制台输入一个年份,判断是否为闰年(闰年的条件:1、年份能被4整除   或  2、年份若是100的整数倍的话,需被400整除)

    Console.WriteLine ("输入年份");

    // int y = int.Parse (Console.ReadLine());

    //

    //

    // if (y % 4 == 0 && y % 100 != 0) {

    // Console.WriteLine ("{0}年为闰年", y);

    // } else if (y % 100 == 0 && y % 400 == 0) {

    // Console.WriteLine ("{0}年为闰年", y);

    // } else {

    // Console.WriteLine ("{0}年为平年", y);

    // }

    周末作业

    1、连续输入一周七天的温度,同时求出该周平均温度。

    // float sum = 0;

    // for (int i = 0; i < 7; ++i) {

    // Console.WriteLine ("请输入星期{0}的温度",i + 1);

    // string temp = Console.ReadLine ();

    // sum += float.Parse (temp);

    // }

    // Console.WriteLine ("七天气温的平均值为:{0}",sum/7.0f);

    2、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

    int a = 10,b = 1;

    // while (a > 1) {

    // b = (b + 1)*2;

    // --a;

    // Console.WriteLine ("第" + a + "天,有桃子" + b + "颗");

    // }

    // Console.WriteLine ("{0}",b);

    int a,  b = 1;

    (a  天数  b 桃子)

    // for (a = 1; a < 10; a++) {

    // b = (b + 1) * 2;

    // }

    // Console.WriteLine ("第一天吃桃子数量为:{0}", b);

    3、分析下列语句中a、b的结果

    int a = 1, b = 3;

    a += b %= 2;//(b%2+a = a)1+1 =2

    int a = 1,b = 4;

    a = ++b/a++; //a = 5 a++ 没有用 

    如何用代码将以下数据转换成二进制和十六进制,1000和2049。

    正整数转成二进制。要点:除二取余,然后倒序排列,高位补零。

    负整数转换成二进制  方法:先是将对应的正整数转换成二进制后,对二进制取反,然后对结果再加一。

    1、十进制转化二进制

    int x = 1000;

    while (x >0 ){

    int n = x % 2;

    Console.WriteLine ("{0}",n);

    x /= 2;

    }

    //数组

    转化二进制 单词 binary

    int x = 1000;

    int[] binary =new int [16];//动态初始化,初始化后为16个0

                                           //int[]必须要给定长度

    int index = 0;//index用来当做数组的下标

    while (x > 0) {

    int n = x % 2;

    binary [index] = n;//修改binary 下标index 对应的值

    ++index;//每执行一次  往后推一位

    x /= 2;

    }

    //反向打印输出

    for (int i = binary.Length - 1;i >=0; --i  ){// - -i 是从后往前的每一个值

                                                                 //binary .Length - 1是为了避免下标越界

                                                                 //因为题中的数组长度为16 但是从0开始 i最大只能是15

    Console.Write ("{0}",binary[i]);//binary[i]是数组中每一个  i 对应的值

    }

    2、十进制转化十六进制

    1000除16商62余8,62除16商3余14,3除16商0余3; 1000 ==> 3E8

    一直除16取余 倒过来 

    int x = 1000;

    //0x3E8 = 8 * 16 ^ 0 + E *16 ^ 1 + 3 * 16 ^ 2

    while (x > 0){

    int n = x % 16;//余8 14 3

    if (n >= 10) {//大于10的余数

    Console.WriteLine ("{0}",(char)(n + 55));

    } else {

    Console.WriteLine ("{0}",n);

    }

    x /= 16; //x = 1000,62,3

    }

    //数组方式

    int x = 1000;

    int[] hexadecimal = new int[8];

    int index = 0;

    while (x > 0){

    int n = x % 16;

    hexadecimal [index] = n;

    ++index;

    x /= 16;

    }

    for (int i = hexadecimal.Length - 1;i >=0; --i  ){

    if (hexadecimal[i] >= 10) { // 在十六进制中10以上的数为abcdef

    Console.Write ("{0}", (char)(hexadecimal[i] + 55));//转化为小写字母

    } else {

    Console.Write ("{0}", hexadecimal[i]);

    }

    }

    8/11 work

    A:

    1、编写一个程序,要求用户从键盘输入2个float数,输出最大者。

    float a = float.Parse(Console.ReadLine());

    float b = float.Parse(Console.ReadLine());

    float c = a > b ? a : b;

    Console.WriteLine ("{0}", c);

    2、编写一个程序,要求用户从键盘输入3个不同整数,输出第二大的数。

    int a = int.Parse(Console.ReadLine ());

    int b = int.Parse(Console.ReadLine ());

    int c = int.Parse(Console.ReadLine ());

    if (a > b && b > c || c > b && b > a) {

    Console.WriteLine ("{0}", b);

    }else if(b > a&&a>c || c>a && a >b){

    Console.WriteLine ("{0}", a);

    }else{

    Console.WriteLine ("{0}", c);

    }

    3、从键盘输入两个实数a和b,代表两点在X轴的坐标,再输入一个0到1之间的数c,代表时间,(假如从a到b需要1s),

    输出在时间c时的坐标。

    例如:输入a为1和b为5,再输入c为0.5,则输出结果为:3。

    结果 = a +(b - a)* 0.5;

    a= 1 b= 5  c= 0.5 坐标 = 3

    float a = float.Parse(Console.ReadLine()) ;

    float b = float.Parse(Console.ReadLine());

    Console.WriteLine ("输入0 到 1 的数c");

    float c = float.Parse (Console.ReadLine ());

    float Z;

    if (a < b) {

    Z = a + (b - a) * c;

    } else {

    Z = b + (a - b) * c;

    }

    Console.WriteLine ("{0}",Z);

    4、输入一个成绩(0到100之间的整数),如果大于等于90输出:优秀;小于90而大于等于80输出:

    良好;小于80而大于等于70输出:一般;小于70而大于等于60输出:及格,否则输出:不及格。

    int a = int.Parse(Console.ReadLine());

    if (a >= 90) {

    Console.WriteLine ("优秀");

    } else if (a < 90 && a >= 80) {

    Console.WriteLine ("良好");

    } else if (a < 80 && a >= 70) {

    Console.WriteLine ("一般");

    } else if (a < 70 && a >= 60) {

    Console.WriteLine ("及格");

    } else {

    Console.WriteLine ("不及格");

    }

    B:

    5、输入3个字符,如果字符中至少有2个数字,求这些数字的和。例:输入‘0’,‘3’,‘8’,求出和为11.

    ASCII码48 -57表示 0 -9

    char a = char.Parse(Console.ReadLine());

    char b = char.Parse(Console.ReadLine());//

    char c = char.Parse(Console.ReadLine());

    if ((a <= 57 && a >= 48) && (b <= 57 && b >= 48) && (c <= 57 && c >= 48)) {

    int sum = 0;

    sum = (int)(a - 48) + (int)(b - 48) + (int)(c - 48);

    Console.WriteLine ("{0}",sum );

    } else if ((b <= 57 && b >= 48) && (c <= 57 && c >= 48)) {

    int sum = 0;

    sum = (int)(b - 48) + (int)(c - 48);

    Console.WriteLine ("{0}", sum);

    } else if ((c <= 57 && c >= 48) && (a <= 57 && a >= 48)) {

    int sum = 0;

    sum = (int)(c - 48) + (int)(a - 48);

    Console.WriteLine ("{0}", sum);

    } else if((a <= 57 && a >= 48) && (b <= 57 && b >= 48)){

    int sum = 0;

    sum = (int)(a - 48) + (int)(b - 48);

    Console.WriteLine ("{0}", sum);

    }

    int a = 0, b = 0, c = 0;

    int num = 0;//定义有几个字符能转成Int值

    if (int.TryParse (Console.ReadLine (), out a)) {

    num++; //如果转成的话 num  = 1;

    } //不能转的话不作操作

    //TryParse ()out 格式+

    if (int.TryParse(Console.ReadLine (),out b )){

    num++;

    }

    if (int.TryParse(Console.ReadLine (),out c )){

    num++;

    }

    if (num >= 2){

    int sum  = a + b +c;//输出三个中int 值的和

    Console.WriteLine ( "sum = "+ sum);

    }

    6、输入一个字符,判断它如果是小写字母输出其对应大写字母,如果是大写字母输出其对应小写字母,如果是数字输出其相反数,如果是空格,输出“space”,如果不是上述情况,输出“other”。

    ASCII码  大写A65 Z90小写z97 z122 空格Space

    char a =  char.Parse(Console.ReadLine());

    if (a >= 97 && a <= 122) {

    Console.WriteLine ("{0}", (char)(a - 32));

    } else if (a >= 65 && a <= 90) {

    Console.WriteLine ("{0}", (char)(a + 32));

    } else if (a == 32) {

    Console.WriteLine ("Space");

    } else if (a >= 48 && a <= 57) {

    Console.WriteLine ("{0}",-(a - 48));

    }

    else {

    Console.WriteLine ("Other");

    }

    // C:

    7、思考一下程序的执行结果:

    int m=0,n=3;

    if (m >= 0);//if嵌套  如果加 ;分号 的话结束

    if (n > 3)

    Console.WriteLine ("A");

    else

    Console.WriteLine("B");

    8、思考如何实现:连续输入若干个字符,包括换行和空格等其他特殊符号,

    按~结束(最后语句中包含换行和空格等,但不包含~)

    Console.WriteLine("按~键退出");

    while (Console.ReadKey().KeyChar != '`')

    {

    }

    char ch;

    string str = "";

    do {

    ch= (char)(Console.Read());

    if(ch != '~'){

    str += ((char)ch).ToString();

    }else{

    break;

    }

    } while (ch != '~');

    Console.WriteLine ("\n输入结束:\n" + str);

    for 一般用于确定次数的循环

    while 一般用于不确定次数循环

    #region 一元二次方程

    9、输入a,b,c三个整数,求一元二次方程的解(有没有解,是多少)。一元二次方程为ax^2 + bx + c = 0;

    float a = float.Parse(Console.ReadLine());

    float b = float.Parse(Console.ReadLine());

    float c = float.Parse(Console.ReadLine());

    if (Math.Pow (b, 2) - 4 * a * c > 0) {

    float x1 = (float)(-b + (Math.Sqrt (Math.Pow (b, 2) - 4 * a * c))) / 2 * a;

    float x2 = (float)(-b - (Math.Sqrt (Math.Pow (b, 2) - 4 * a * c))) / 2 * a;

    Console.WriteLine ("方程解为x1 = {0}, x2 = {1}", x1, x2);

    } else if (Math.Pow (b, 2) - 4 * a * c == 0) {

    float x = (float)(-b + (Math.Sqrt (Math.Pow (b, 2) - 4 * a * c))) / 2 * a;

    Console.WriteLine ("方程解为x1 = {0}", x);

    } else if (Math.Pow (b, 2) - 4 * a * c < 0) {

    Console.WriteLine ("方程没有解");

    }

    #endregion

    8、14

    计算100至10000之间有多少个数 各位数字之和为7

    int number = 100;

    int num = 0;

    while ( number <= 7000) {

    if (number > 100 && number <= 7000) {

    if (number % 10 + (number / 10) % 10 + (number / 100)%10 + number / 1000 == 7 ) {

    ++num;

    }

    }

    ++number;

    }

    Console.WriteLine (num);

    int num = 0;

    for (int number = 100; number <= 7000; number++) {

    int a, b, c, d;

    a = number % 10;

    b = (number / 10) % 10;

    c = (number / 100) % 10;

    d = (number / 1000) % 10;

    if (a + b + c + d == 7) {

    Console.WriteLine (number);

    num++;

    }

    }

    Console.WriteLine (num);

    int number = 100;

    int num = 0;

    while (number <= 7000) {

    int a, b, c, d;

    a = number % 10;

    b = (number / 10) % 10;

    c = (number / 100) % 10;

    d = (number / 1000) % 10;

    if (a + b + c + d == 7) {

    Console.WriteLine (""+number);

    num++;

    Console.WriteLine ("第" + num +"个");

    }

    number++;

    }

    2、打印出1 - 100之间所有的偶数

    int a = 1;

    while (a <= 100) {

    if (a % 2 == 0) {

    Console.WriteLine (a);

    }

    a++;

    }

    3、打印 1 + 2 + 3 + ....+100的值

    int a = 0;

    int sum = 0;

    while (a <= 100) {

    a++;

    sum += a;

    }

    Console.WriteLine ("{0}", sum);

    在终端循环输出数字,一旦输入数字小于0,停止输入

    while break

    while (true) {

    int  a = int.Parse(Console.ReadLine());

    if (a < 0) {

    break;

    }

    }

    利用continue 打印实现1 - 100之间 不是3的倍数

    int a = 0;

    while(a<100){

    a++;

    if (a % 3 == 0) {

    continue;

    }

    Console.WriteLine (a);

    }

    sum = 1 +...n; 求sum 不超过10000的最大整数值和项值N

    int n =0 ;

    int sum= 0;

    do {

    n++;

    sum +=n;

    if(sum==9999){

    break;

    }

    } while (sum<10000);

    Console .WriteLine("项值为"+ (n-1));//

    Console.WriteLine ("最大整数" + (sum-n));

    //

    用for循环打印出1 - 100之间不是7的倍数并且不包含7的数

    for(int a = 0;a <=100;a++){

    1、 if (a % 7 != 0 && a % 10 != 7 && a / 10 != 7) {

    Console.WriteLine (a);

    }

    2、 if (a % 7 != 0 && !(a.ToString().Contains("7"))) {

    Console.WriteLine (a);

    }

    for (int i = 1; i <= 3; i++) {

    for (int j = 1; j <=i; j++) {

    Console.Write (j);

    }

    Console.WriteLine ();

    }

    乘法口诀打印

    for (int a = 1; a <= 9; a++) {

    for (int b = 1; b <= a; b++) {

    Console.Write ("{0}*{1}={2} ", b, a,a*b);

    }

    Console.WriteLine ();

    }

    8/14 work

    A:

    1、编程将所有“水仙花数”打印出来,并打印其总个数。“水仙花数”是一个各个位立方之和等于该整数的三位数。

    方法一、

    for(int i=1;i<10;i++)

    {

    for(int j=0;j<10;j++)

    {

    for(int k=0;k<10;k++)

    {

    int m=i*100+j*10+k;          //这里int定义最好放到开头处

    int n=i*i*i+j*j*j+k*k*k;

    if(n==m)Console.WriteLine(m); //注意这里是==

    }

    }

    }

    方法二、

    for (int i = 100; i < 1000; ++i) {

    int a = i % 10;//% 10得到的都是小于10的数

    int b = i/10%10;

    int c = i / 100;

    int sum = 0;

    if (Math.Pow (a, 3) + Math.Pow (b, 3) + Math.Pow (c, 3) == i) {

    sum++;

    Console.WriteLine (i);

    }

    Console.WriteLine(sum);

    }

    2、自定义一个数组并求数组中的所有元素最大值、最小值、平均值及各元素之和。

    求数组中的最大值、最小值、总和、平均值

    方法一、

    int[] a = { 75, 2, 3, 35, 38, 39, 66, 89 };

    int max = a [0];

    int min = a[0];

    // int min_1 = int.MaxValue;//Int 类型的最大值

    int sum = 0;

    for (int i = 0; i < a.Length; i++) {

    if (a [i] > max) {

    max = a [i];

    }

    if (a [i] < min) {

    min = a [i];

    }

    sum += a [i];

    }

    Console.WriteLine ("数组中最大值是{0},最小值是{1},总和是{2},平均值是{3}", max, min, sum, sum / a.Length);

    Console.ReadKey ();

    方法二、

    int[] a = { 75, 2, 3, 35, 38, 39, 66, 89 };

    int max = 0;

    int min = a[0];

    int sum = 0;

    for (int i = 0; i < a.Length; i++) {

    max = max < a [i] ? a [i] : max;//三元算法求最大值最小值

    min = min > a [i] ? a [i] : min;

    sum += a [i];

    }

    Console.WriteLine ("数组中最大值是{0},最小值是{1},总和是{2},平均值是{3}", max, min, sum, sum / a.Length);

    Console.ReadKey ();

    3、已知abc+cba = 1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。

    for(int a =0;a<=9;a++){

    for (int b = 0; b<= 9; b++) {

    for (int c = 0;  c <= 9; c++) {

    if ((a * 100 + b * 10 + c) + (c * 100 + b * 10 + a) == 1333) {

    Console.WriteLine ("a = {0},b = {1},c = {2}", a, b, c);

    }

    }

    }

    }

    4、打印100以内的所有质数. (只能被1和它本身整除的数是质数)

    for(int i = 2;i<100;i++){

    bool flag = false;

    for (int j = 2; j <= i / 2; ++j) {

    if (i % j == 0) {

    flag = true;

    break;

    }

    }

    if(!flag ){

    Console.WriteLine ("{0}是质数",i);

    }

    }

    int a ,b;

    for (a = 2; a < 10; a++) {

    for (b = 2; b <= a ; b++) {

    if (a % b == 0)//

    break;//排除了所有不是质数的情况

    }

    if (b == a) {

    Console.WriteLine ("{0}", a);

    }

    }

    5、输入两个数,求最大公约数和最小公倍数。(有两种方法:辗转相除法和普通方法)


    最大公约数:几个数公有的因数中最大的一个

    最小公倍数:几个数公有的倍数中最小的一个

    普通方法:

    int a =int.Parse(Console.ReadLine());

    int b = int.Parse (Console.ReadLine ());

    int min = a < b ? a : b;

    int max_grs = 0;

    for (int i = 1; i <= min; ++i) {//i 小于他们中最小的那个数

    if (a % i == 0 && b % i == 0) {

    max_grs = i;

    }

    }

    Console.WriteLine ("最大公约数为"+max_grs);

    Console.WriteLine ("最小公倍数为"+(a*b)/max_grs);


    辗转相除法:

    int a =int.Parse(Console.ReadLine());

    int b = int.Parse (Console.ReadLine ());

    int temp = 0;//接收余数

    do {

    //120 56

    temp  = a % b;//120 % 56 = 8  56 %  8 = 0能整除56的一定也能整除120

    a = b;//a  = 8

    b = temp;//b = 0;

    } while(temp != 0);

    Console.WriteLine ("最大公约数为" + a);

    6、一个球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高

    float sum ,hight;

    sum = 100f;

    hight = 100f;

    for (int i = 2; i <= 10; i++) {

    hight /= 2f;

    sum += hight * 2;

    }

    Console.WriteLine ("经过 {0} 米,第十次反弹 {1} 米",sum ,hight/2);

    B:

    7、百钱百鸡问题:鸡翁一值钱5;母鸡一值钱3;鸡雏三值钱1,百钱买百鸡,问鸡翁鸡母鸡雏各几何?

    //5x + 3y +z/3 = 100

    x + y +z =100

    14x +8y = 200

    for(int x  = 0;x<20;x++){

    for (int y = 0; y < 34; y++) {

    if(14 *  x + 8 * y ==200){

    Console.WriteLine ("x={0},y={1},z={2}",x,y,100-x-y);

    }

    }

    }

    for (int x = 0; x <= 20; x++) {

    for (int y = 0; y < 34; y++) {

    int z = 100 - x - y;

    if (15 * x + 9 * y + z == 300) {

    Console.WriteLine ("x={0},y={1},z={2}", x, y, z);

    }

    }

    }

    8、输入n,分别用 * 输出边长为n 的实心菱形

    例如n = 3时,输出

    i        空格     *

    *              -2行数    2          1    星号 =(2n -1)- 2*|i|

    ***            -1            1        3

    *****            0            0        5

    ***            -1            1        3

    *              2            2        1

    int n = int.Parse (Console.ReadLine());

    for (int i = -n + 1; i <= n - 1; ++i) {

    for (int j = 0; j < Math.Abs (i); ++j) {

    Console.Write (" ");

    }

    for (int k = 0; k < 2 * n - 1 - 2 * Math.Abs (i); ++k) {

    if( k ==0|| k== 2 * n - 2 - 2 * Math.Abs (i)){

    Console.Write ("*");

    }else{

    Console.Write (" ");

    }

    }

    Console.WriteLine ("\n");

    }

    实现空心菱形

    *          -2

    *  *        -1

    *      *      0

    *  *        1

    *          2

    相关文章

      网友评论

          本文标题:5 -7作业汇总

          本文链接:https://www.haomeiwen.com/subject/tccblxtx.html