C语言基础练习
2017-08-04 10:22
316 查看
1、判断年份是否是闰年
2、判断是否是素数
3、求两个数的最大公约数和最小公倍数
4、计算两个数的加减乘除
5、输入日期,判断该日期是一年的第几天
6、输入整数,倒序输出
7、求1-100的和
8、求200-300之间不能被3整除的数
#include <stdio.h> int main() { int year; int leap; printf("Please input a year:"); scanf("%d",&year); //输入年份 if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { printf("%d is a leap year!\n",year); } else { printf("%d is not a leap year!\n",year); } //如果输入的年份能整除4但不能整除100或者能整除400就是闰年 return 0; }
2、判断是否是素数
#include <stdio.h> int main() { int prime(int n); // 声明判断素数函数 int n = 0; int i = 0; for( n = 100; n <= 200; n++ ) { i = prime(n); //调用判断素数函数 if( i == 1) //当返回值为1时,说明该数为素数,输出这个数并让其占四个字符空间 { printf("%4d",n); } } printf("\n"); return 0; } int prime(int n) { int i; for( i = 2; i < n; i++ ) { if ( n % i == 0 ) { return 0; } } return 1; //判断素数函数,输入这个数,看整个数能否整除比它小的数,能整除说明不是素数,返回0,不能整除说明是素数,返回1 }
3、求两个数的最大公约数和最小公倍数
#include <stdio.h> int gyue( int m, int n ) { int temp; int z; if( m < n ) { temp = m; m = n; n = temp; } //如果输入的两个数第一个数小于第二个数,交换两个数 while( n != 0 ) { z = m % n; m = n; n = z; } //m%n得余数z,若z=0,则m为两数的最大公约数,若z != 0,则m = n,n = z,再进行循环 return m; } int gbei( int m, int n, int i ) { return (m * n / i); } //最大公倍数等于两整数乘积除以最大公倍数 int main() { int m; int n; int i; int j; printf("请输入两个正整数:"); scanf("%d,%d",&m,&n); //录入两整数的值 i = gyue(m,n); //调用最大公约数函数 j = gbei(m,n,i); //调用最小公倍数函数 printf("这两个数的最大公约数为:%d\n",i); printf("这两个数的最小公倍数为:%d\n",j); return 0; }
4、计算两个数的加减乘除
#include <stdio.h> int main() { int add( int a, int b ); int sub( int a, int b ); int mul( int a, int b ); int div( int a, int b ); //声明加减乘除四个函数 int a = 0; int b = 0; int c = 0; printf("plesae input a num a:"); scanf("%d",&a); printf("plesae input a num b:"); scanf("%d",&b); //录入a b的值 c = add( a, b ); printf("a + b =%d\n",c); //调用加函数并输出所得值 c = sub( a, b ); printf("a - b =%d\n",c); //调用减函数并输出所得值 c = mul( a, b ); printf("a * b =%d\n",c); //调用乘函数并输出所得值 c = div( a, b ); printf("a / b =%d\n",c); //调用除函数并输出所得值 return 0; } int add( int a, int b ) { return a + b; } int sub( int a, int b ) { return a - b; } int mul( int a, int b ) { return a * b; } int div( int a, int b ) { return a / b; }
5、输入日期,判断该日期是一年的第几天
#include <stdio.h> int leapyear(int n) { if(( n % 4 == 0 && n % 100 != 0) || ( n % 400 == 0 )) { return 1; } else { return 0; } } //判断闰年函数,如果年份能整除4并且不能整除100或者能整除400,就是闰年,返回1 int main() { int year; int mouth; int day; int i = 0; int j = 0; int result = 0; int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; //把每个月的天数放在一个数组中 printf("请输入年月日:"); scanf("%d,%d,%d",&year,&mouth,&day); //输入年月日并分别赋给year mouth day for ( i = 0; i < mouth - 1; i++ ) { result = a[i] + result; } //把月份之前的月的天数加在一起 result = result + day; j = leapyear(year); if( j == 1 ) { if( mouth > 2) { result += 1; } } //如果是闰年,并且月份大于2,结果+1 printf("这是第%d天\n",result); return 0; }
6、输入整数,倒序输出
#include <stdio.h> int fun ( int n ) { int a = 0; int b = 0; while( n != 0 ) { a = n % 10; //a等于n的最后一位上的数 b = b * 10 + a; n /= 10; } //将n倒序放入b中 return b; } int main() { int num; int i; printf("请输入一个整数:\n"); scanf("%d",&num); //录入整数的值 i = fun( num ); printf("倒序输出为:%d\n",i); //调用fun函数,让i等于逆序输出的值,输出i return 0; }
7、求1-100的和
#include <stdio.h> int main() { int i = 1; int sum = 0; for ( i = 1; i <= 100; i++) { sum = sum + i; } printf("1到100的求和值为%d\n",sum); }
8、求200-300之间不能被3整除的数
#include<stdio.h> int main() { int i = 200; int count = 0; printf("200到300之间不能被3整除的数有:\n"); for( i = 200; i <= 300; i++ ) { if( i % 3 != 0 ) { printf("%5d",i); count++; //当整数不能整除3时,输出该数,并让其占5个字符,同时count+1 if( count % 5 ==0) { printf("\n"); } //当count能整除5时,代表已经输出5个数了,让其转行 } } printf("\n"); return 0; }