您的位置:首页 > 编程语言 > C语言/C++

C语言基础练习

2017-08-04 10:22 316 查看
1、判断年份是否是闰年

#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: