一些最基本的小练习

来源:互联网 发布:tensorflow 中文文档 编辑:程序博客网 时间:2024/05/17 02:21

1.如何判断闰年?

#include <stdio.h>int main(){int year = 0;printf("input a year:");scanf("%d",&year);if( (year % 4 == 0&&year % 100 != 0)||year % 400 == 0 ){printf("run nian!\n");}else{printf("ping nian!\n");}return 0;}

2. 如何判断一个素数?100200之间的素数怎么判断?设置标志变量

#include <stdio.h>int main(){int i = 0;int j = 0;int a = 0;int b = 0;int flag = 0;printf("inuput [a,b]:\n");printf("a:");scanf("%d",&a);printf("b:");scanf("%d",&b);printf("Primre number in[%d,%d] is:\n",a,b);for(i = a; i <= b; i++){flag = 1;for ( j = 2; j < i; j++ ){if( i % j == 0){flag = 0;}}if( flag == 1){printf("%d,",i);}}printf("\n");return 0;}

3.求两个数的最大公约数,最小公倍数?穷举法

#include <stdio.h>int gcd(int m,int n){int t = 0;int i = 0;if( m >= n ){t = n;}else{t = m;}for( i = t; i >= 1 ; i-- ){if( m % i == 0 ){ if( n % i == 0 ) { break; }}}printf(" gcd is:%d \n",i);return 0;}int lcm( int m,int n ){int t = 0;int i = 0;if( m >= n ){t = m;}else{t = n;}for( i = t; i >= t; i++){if( i % m == 0 ){if( i % n == 0 ){break;}}}printf("lcm is:%d\n",i);return 0;}int main(){int a = 0;int b = 0;printf("input number A:");scanf("%d",&a);printf("input number B:");scanf("%d",&b);lcm( a, b );gcd( a, b );return 0;}

4. 设计一个计算器程序

#include <stdio.h>int main(){int a = 0;int b = 0;int r = 0;char op;printf("input an expression:");scanf("%d%c%d",&a,&op,&b);     //输入表达式switch(op){case'+':r = a + b;printf("%d + %d = %d\n",a,b,r);break;case'-':r = a - b;printf("%d - %d = %d\n",a,b,r);break;case'*':r = a * b;printf("%d * %d = %d\n",a,b,r);break;case'/':if( b == 0 )                             // 判断除0{printf("Division by zero !\n");}else{r = a / b;printf("%d / %d = %d\n",a,b,r);break;}default:printf("input error!\n");}return 0;}

5. 设计一个日历程序,输入年月日,输出当年第多少天? 可以设置a[2][0]={0};

//键盘输入某年某月某日(包括闰年),输出是该年的多少天

#include <stdio.h>#define mounth  13int main(){int days[2][mounth] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};int MOUNTH = 0;int year = 0;int DAYS = 0;int sum = 0;int i = 0;do{printf("intput a year,a mounth,a day:\n");scanf("%d,%d,%d",&year,&MOUNTH,&DAYS);}while( MOUNTH < 1|| MOUNTH > 12 );if( ( year % 100 != 0&& year % 4 == 0)||( year % 400 == 0)){for( i = 0; i < MOUNTH ; i++ ){sum = sum + days[1][i];}}else{for( i = 0; i < MOUNTH ; i++ ){sum = sum + days[0][i];}}sum = sum + DAYS;printf("%d.%d.%d is %days \n",year,MOUNTH,DAYS,sum);return 0;}

6.把一个三位数整数,逆序输出

#include <stdio.h>int swap( int m){int a = 0;int b = 0;int c = 0;int n = 0;a = m / 100;m = m % 100;b = m / 10;m = m % 10;c = m;n = c*100 + b *10 + a;return n;}int main(){int m = 0;int n = 0;printf("input a num from 100 to 999:");scanf("%d",&m);if( 99 < m < 1000){n = swap( m );printf("result is %d\n",n);}else{printf("input error!\n");}return 0;}

7. 1100之间的和:递归思想,递归必须要有基线

#include <stdio.h>int sum ( int n ){int s = 0;    if( n <= 0){return -1;}else if( n == 1 ){return 1;                   //递归的基线情况}else{s = (sum( n - 1 ) + n);}return s ;}int main(){int n = 0;int s = 0;printf("input a number:");scanf("%d",&n);s = sum( n );printf("sum = %d\n",s);return 0;}

8. 200300之间不能被3整除的数,5个一行输出:定义一个count变量计数控制五个一行输出“\n”.

#include <stdio.h>int main(){int a = 0;int b = 0;int i = 0;int count = 0;                     printf("intput [a,b] :\n");scanf("%d",&a);scanf("%d",&b);for( i = a; i <= b; i++){if( i % 3 !=0 ){count++;printf("%d,",i);if( count % 5 == 0 ){printf("\n");}}}printf("\n");return 0;}


0 0
原创粉丝点击