C语言总结错误

来源:互联网 发布:亚伟速录软件下载6.0 编辑:程序博客网 时间:2024/06/10 05:28

1.输入一组数据,进行按从小到大的顺序排列出来(冒泡排序的方法)

int [5] = {0}, n;

printf("请输入5个数:\n");

for(int i = 0; i < 5; i++) {

   scanf("%d", &a[i]);

}

//在控制台输入数据

for(int m = 0; m < 4; m++) {

  for (int n = 0; n < 4 - m; n++) {

    if(a[i] > a[i + 1])

{

    n = a[i];

   a[i] = a[i + 1];

   a[i + 1] = n;

              }

        }

}

//for循环进行嵌套,将数组a[i]中的数据进行一轮又一轮的比较,直至最大值在后,最小值在前。

for(int i = 0; i < 5; i++) {

  printf("%d  ", a[i]);

}

printf("\n");

//将比较后得到的新数组依次输出。

2.随机产生20个10-50的正整数存放到数组中,并求数组中的最大值、最小值、各元素之和和平均值

int b[20] = {0};

int min = 50, max = 0, sum = 0;

float ave = 0;

//将最小值赋初值为50,进行20次的比较,将最小的数输出。同样最大值赋初值为0,在进行比较的时候,凡是大于Max的值就交换,进行下一次的比较,直到最后输出最大值。平均值有可能是小数,所以 用float定义。

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

   b[c] = arc4random() % (50 - 10 + 1) + 10;

   printf ("b[%d] = %d\n", c + 1, b[c]);

   sum += b[c];

   ave = sum / 20.0;

//使用随机数的公式,在规定范围内随机输出20个数字,然后按照下标顺序依次输出,在进行求和和平均值的计算。

if (max < b[c]) {

  max = b[c];

}

if (b[c] < min) {

  min = b[c];

}

//最大值和最小值分别与数组里的随机数进行比较,直至比较出最大的和最小的,赋值输出。

3.给定某年某月某日,将其转换成这一年的第几天并输出

(1)int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31};

         int b[12] = {31,29,31,30,31,30,31,31,30,31,30,31};

//定义两个数组a[12]和 b[12],分别代表平年和闰年的月份天数(平年和闰年在2月只差一天)。

int sum = 0,year, month, day;

printf("输入日期:\n");

scanf("%d %d %d", &year, &month, &day);

if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))

 {

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

           sum += b[i] ;

}

}

else  {

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

        sum += a[i];

}

sum += day;

printf("sum = %d\n", sum);

//在控制台输入年月日,然后进行判断输入的年份是否是闰年,如果是闰年,for循环里输入的月份-1(当月不能算整月,要剔除),使用数组b[12]来计算month-1月的总天数,在最后输出sum的时候要加上所输入的天数(day),最后的sum才是这一年中的第几天。如果不是闰年,执行else里的语句,使用数组a[12]来计算month-1月的总天数,然后再加上day就可以正确的输出你所写的日期是这一年的第几天。

(2)switch语句一一列举出输入月份的总天数

 switch (month){

    case 1:sum = 31;break;

    case 2:sum = 59;break;

    case 3:sum = 90;break;

    …………

   case 12:sum= 365;break;

 }

if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))

{

    if(month > 2){

    sum += day;

   sum += 1;

    printf("sum = %d\n", sum);

}

//在闰年的时候,二月比平年的二月多一天,所以在输入的月份大于2时,总天数要+1,如果不大于2,就直接输出总天数。

    else  printf("sum = %d\n",sum);

 }

else  {

   sum += day;

printf("sum = %d\n",sum);

}







0 0
原创粉丝点击