C/C++之练习题4-5

原创 2016年08月29日 18:37:52
#include<stdio.h>
#include<stdlib.h>
#include<math.h>


    int main(){
           /*1.大小月
           *2.闰年否? 
           */

            int year,month,day,leap=2,sum=0,number = 30;
             printf("请输入年月日\n");
              printf("公元\n");
             scanf("%d",&year ); 
             printf("年\n");
             scanf("%d",&month,&day);
             printf("月\n"); 
             scanf("%d",&day); 
               printf("日\n"); 
              if(year%400==0 ||((year%4==0)&&(year%100)!=0)){
                             leap = 1;
                             }

                  switch(month)
                  {
                               case 1:
                                    sum = day;
                                    break;
                               case 2:
                                    sum = day+31;
                                    break;
                                case 3:
                                     sum =(month-1)*30-leap+day+1;
                                     break;   
                                case 4:
                                     sum =(month-1)*30-leap+day+2;
                                     break;  
                                case 5:
                                     sum =(month-1)*30-leap+day+2;
                                     break;  
                                case 6:
                                     sum =(month-1)*30-leap+day+3;
                                     break;   
                                case 7:
                                     sum =(month-1)*30-leap+day+3;
                                     break; 
                                 case 8:
                                     sum =(month-1)*30-leap+day+4;
                                     break;   
                                  case 9:
                                     sum =(month-1)*30-leap+day+5;
                                     break;
                                 case 10:
                                     sum =(month-1)*30-leap+day+5;
                                     break; 
                                 case 11:
                                     sum =(month-1)*30-leap+day+6;
                                     break; 
                                 case 12:
                                     sum =(month-1)*30-leap+day+6;
                                     break;                                    
                          }


              printf("为公元%d年%d月%d日的第%d天\n",year,month,day,sum);
               system("pause");
                return 0;

        }

这里写图片描述
改进点:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>


    int main(){
           /*1.大小月
           *2.闰年否? 
           */

            int year,month,day,leap=2,sum=0,number = 30;
             printf("请输入年月日\n");
              printf("公元\n");
             scanf("%d",&year ); 
             printf("年\n");
             scanf("%d",&month,&day);
             printf("月\n"); 
             scanf("%d",&day); 
               printf("日\n"); 
              if(year%400==0 ||((year%4==0)&&(year%100)!=0)){
                             leap = 1;
                             }

                  switch(month)
                  {
                               case 1:
                                    sum = day;
                                    break;
                               case 2:
                                    sum = day+31;
                                    break;
                                case 3:
                                     sum =(month-1)*30-leap+day+1;
                                     break;   
                                case 4:

                                case 5:
                                     sum =(month-1)*30-leap+day+2;
                                     break;  
                                case 6:

                                case 7:
                                     sum =(month-1)*30-leap+day+3;
                                     break; 
                                 case 8:
                                     sum =(month-1)*30-leap+day+4;
                                     break;   
                                  case 9:

                                 case 10:
                                     sum =(month-1)*30-leap+day+5;
                                     break; 
                                 case 11:

                                 case 12:
                                     sum =(month-1)*30-leap+day+6;
                                     break;                                    
                          }


              printf("为公元%d年%d月%d日的第%d天\n",year,month,day,sum);
               system("pause");
                return 0;

        }

【程序5】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>


    int main(){
          /**
          1.主要是比较如何比较最好~
           */
           int x,y,z;
          printf("请输入是三个数\n");
    //      scanf("%d,%d,%d",&x,&y,&z);

          /*开始比较大小 
          */
          int a[3],i;
          for(i= 0;i<3;i++){
                  scanf("%d",&x);
                  a[i]= x;
                 }
                 int tep;
           for(i= 1;i<3;i++){
                for(j=i;j<3;j++){
                 if( a[i-1]>a[j]){
                    tep = a[i-1];
                     a[i-1]=a[j];
                     a[j] = tep;
                     }
                     }

                 }
           for(i= 0;i<3;i++){
               printf("%d\t",a[i]);
                 }


               system("pause");
                return 0;

        }

这里写图片描述

用指针

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

    int funtion(int *a[]){

         int *tep,i,j;
         for(i=1;i<3;i++){
               for(j = i;j<3;j++){
                 if(* a[i-1]>*a[j]){
                    *tep = *a[i-1];
                    * a[i-1]=*a[j];
                    * a[j] =* tep;
                     }
                     }
                 }

                 return **a;
        }

    int main(){
          /**
          1.主要是比较如何比较最好~
           */
           int x,y,z;
          printf("请输入是三个数\n");
    //      scanf("%d,%d,%d",&x,&y,&z);

          /*开始比较大小 
          */
          int a[3],i;
          int *ptr[3],*t[3];
          for(i= 0;i<3;i++){
                  scanf("%d",&x);
                  a[i]= x;
                   ptr[i]= &a[i];
                 }

                funtion(ptr);

           for(i= 0;i<3;i++){
               printf("%d\t",*ptr[i]);
                 }

           printf("\n");
               system("pause");
                return 0;

        }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

爱奇艺2017C/C++笔试练习题

一、两道练习题目 1、求数列的和 Time Limit: 2000/2000 MS (Others/C,C++) Memory Limit: 32768/32768 K (Others/C,C++) ...

C/C++ 数据结构练习题1

题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1 接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。 接下去...

Windows via C/C++(5th) 中文版(Part 4/5)

  • 2010年06月23日 12:04
  • 19MB
  • 下载

c/c++练习题补充

  • 2015年09月05日 11:31
  • 4.01MB
  • 下载

DC4C代码阅读(5)——计算节点

码结构和注册节点类似 计算节点的主要流程: 1、在main函数中设置信号处理函数、把自己转换为守护进程、创建子进程组(一台主机中可以有多个计算节点),父进程负责监控子进程的运行,子进程组则提供...

sql server 导入平面文件源数据,错误 0xc02020a1错误 0xc020902a 错误 0xc02020c5,返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页...

使用sql server 导入平面文件源数据时,报错:错误 0xc02020a1: 错误 0xc020902a: 错误 0xc02020c5;错误 0xc0047022: 返回状态值 4 和状态文本“...

BBB_SCH_RevB4_A5C

  • 2016年04月10日 18:51
  • 391KB
  • 下载

决策树C4_5算法

  • 2015年03月20日 22:51
  • 2.39MB
  • 下载

KEIL5 for arm 软件编译Keil4 C51程序的方法

通常大家用KEIL5 编译stm32程序,keil4编译C51程序,两个软件不能同时支持stm32和C51程序的编译,造成许多不便。从网上搜索到网友提供的方法并操作,发现只要将keil5设置下就可以实...
  • ssss992
  • ssss992
  • 2017年07月19日 16:40
  • 312
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C/C++之练习题4-5
举报原因:
原因补充:

(最多只允许输入30个字)