关闭

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

163人阅读 评论(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:
                                     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;

        }
0
0
查看评论

The C Programming Language 练习题4-5

题目 给计算器程序增加访问sin、exp 与pow 等库函数的操作。有关这些库函数的详细信息,参见附录B.4节中的头文件#include <stdio.h> #include <stdlib.h> /* for atof() */ #include <string....
  • warmars
  • warmars
  • 2017-10-19 19:19
  • 88

系列练习题(C/C++)

1、*(p++)、*(p)++、*(++p) #include int main() { int*p = NULL; int a[]={1,2,3,4}; p=a; /* *(p++) += 100; printf("%d,%d,%d,%d,%d\n",*p,a[0],...
  • sumup
  • sumup
  • 2017-09-05 08:43
  • 124

C/C++之练习题1-3

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h> #include<stdlib.h> int main(){ int i,j,k,count=0; printf("\n...
  • wqewq19
  • wqewq19
  • 2016-08-25 18:45
  • 130

链表相关练习题(C++)

一、链表 1、在节点值有序的单循环链表中插入指定结点,使插入后的链表依然有序。 解法:一下解法只是单链表,不是循环链表。 class InsertValue { public:     ListNode* buildLi...
  • DjangoBUAA
  • DjangoBUAA
  • 2016-04-22 20:45
  • 2165

二叉树相关练习题(C++)

一、二叉树 1、用递归方法实现二叉树的先序、中序、后序遍历 class TreeToSequence { public:           void preOrder(Tree...
  • DjangoBUAA
  • DjangoBUAA
  • 2016-04-09 16:02
  • 3578

C/C++笔试编程题集

1、编一个程序求质数的和,例如F(7)=2+3+5+7+11+13 +17=58。(软件业巨无霸——微软笔试面试题目(1))2、自己定义数据结构,写出程序:二叉树的前序遍历。(中国最重要的电信设备和全面电信解决方案供应商之一——阿尔卡特(中国)的面试题目)3、编程输出以下格式的数据。(趣味题)...
  • jamesmf
  • jamesmf
  • 2009-10-13 22:52
  • 10846

黑马程序员——C语言循环、switch与if语句笔记和习题

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一:while、do-while和for三种循环在具体的使用场合上是有区别的:1、在知道循环次数的情况下更适合使用for循环;2、在不知道循环次数的情况下适合使用while或者do-while循环,...
  • caizexu12345
  • caizexu12345
  • 2015-11-30 19:11
  • 1091

C/C++ 练习题

一,选择题 人生就是一条选择题,有时候不是不会走路,而是不知道怎么走路 二,判断题 生活有时候就像计算机只认识二进制那样,不是0,就是1;是非曲直,对错黑白,往往就在一念之间 三,描述题 描述就是说出问题的本质
  • lcg910978041
  • lcg910978041
  • 2017-09-01 10:44
  • 200

C++ 指针与数组的练习

int main() { int array[10] = { 6, 1, 2, 4, 5, 7, 9, 8 }; int *p1 = array; int *p = &array[0]; printf("%p, %p\n", p, p1)...
  • mir_age
  • mir_age
  • 2017-06-25 15:58
  • 253

Visual C++异常处理机制原理与应用(三)——C/C++结构化异常处理之try-except异常处理的使用(上)

在微软的VC++中,C/C++结构化异常处理机制一共包含两部分内容:终止处理程序和异常处理程序,本文主要介绍异常处理程序的相关内容。
  • LPWSTR
  • LPWSTR
  • 2017-12-03 21:45
  • 108
    个人资料
    • 访问:56831次
    • 积分:1966
    • 等级:
    • 排名:千里之外
    • 原创:138篇
    • 转载:27篇
    • 译文:0篇
    • 评论:5条
    最新评论