c语言基础程序——100实例

目录

1. 有1,2,3,4个数字,能组成多少个互不相同的无重复数字的三位数?都是多少?

 2.企业发放奖金根据利润提成。利润不高于十万时,奖金可提10%,高于十万时,低于十万部分不变,高于十万部分可提7.5%,20万到40万时,高于20万部分可提5%,40万到六十万时高于四十万部分可提3%,60万到100万,高于60万部分可提1.5%,超过100万按1%提成。键盘输入当月利润 i,求发放的奖金。

3.个整数它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问数是多少。

4.输入某年某月某日,判断这一天是这一年的第几天?

5.三个数排序

6.输出九九乘法表

7. 输出国际象棋棋盘

8.输出楼梯图形

9.有一对兔子,从出生第三个月之后,每个月生一对兔子,小兔子长到第三个月又生一对兔子,假如兔子不死,求每个月兔子的数量是多少?一年之后是多少?

10.编程题10:输出101--200之间的素数

11.打印100-1000内的水仙花数

12.将一个正整数分解因数。例如:输入90,打印90=2*3*3*5

13.利用条件运算符完成。>=90的同学用A表示,60-89分用B表示,60分以下用C表示

14.辗除法实现输入两个正整数m和n,求最大公约数和最小公倍数。

15.输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。

16.求a+aa+aaa+aaaa+aaaaa+...+aa...a的值,a是一个数字及其变式。

17.一个数恰好是他的因子之和,这个数就被称为“完数”。例如;6=1+2+3.求1000内的完数

18.一球从100米高度自由落下,每次落地反弹后跳回原来高度的一半,再落下,求十次落地后,共经过多少米?第10次多高?

19.猴子吃桃问题:猴子第一天摘了若干个桃子,当即吃了一半,不过瘾,又吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃了一个。以后每天都吃了前一天的一半多一个,到第10天只剩一个桃子。求第一天吃了多少?

20.两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。比赛名单顺序。a不和x比,c说不和x,z比,请找出三队选手的比赛名单。

21.打印菱形,数字类图形

22.有一序列 2/1,3/2,5/3,8/5,13/8,21/13...求这个数列的前20项之和。

23.1+2!+3!+4!+...+20!的和?

24.水仙花数

25.将一个正整数分解质因数

26.输入一个大于3的整数,判定它是否是素数

27.给一个不多已5位数的正整数,要求:一、求是个几位数。二、逆序打印程序分析:将每个位取出来计算.

28.一个5位数,判断是不是回文数。12321是回文数,个位和万位相同,十位和千位相同。程序分析:将每个位取出来比较。

29.请输入星期几的第几个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。程序分析:情况语句比较好,如果第一个字母一样,可以用if条件语句判断。

30.求一百以内的素数

31. 对10个数排序

32.求一个3*3矩阵对角线元素之和

33.有一个已经排好序的数组。先输入一个数,要求按原来的规律将它插入数组中。

34.将一个数组逆序输出

35.杨辉三角,输出前十行

36.好数 各位数乘积能被各位之和整除

37.不超过

38.海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子分成5份,多了一个,这只猴子将多了的一个仍入海中,拿走了一份。第二只猴子把剩下的桃子又分均分成5份,又多了一个,同样的扔海中了,拿走了一份,第三、第四、第五都是这样做的。求海滩原来最少有多少个?

39.八进制转换成十进制

40.0-3所能组成的奇数个数

41.一个偶数总能表示两个素数之和

42.strcat

 44.输入一个三角形的三条边长,判断这三条边是否能构成直角三角形,输出计算结果

45.根据公示Π/4=1-1/3+1/5-1/7+1/9-1/11+......,计算Π的近似值,当最后一项的绝对值小于0.000001为止。

46.从键盘输入20个学生的姓名和总分,按总分从大到小顺序输出这20个学生的姓名和总分。

47.一个数只能被它本身和1整除的数叫素数,设计一函数可以判断一个数是不是素数,并利用此函数输出2-1000以内的所有素数,并每行十个输出。

48.输入一个圆的半径r,输出这个圆的直径,周长,面积计算结果

49.判断输入的正函数既是5的又是7的倍数,如果是输出“yes”,如果不是输出“no”。

50.从键盘输入一个正整数n,计算1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+...+n) 的值

51.从键盘输入一个四行三列的矩阵,输出这个矩阵以及它的转置矩阵

52.设计一个判别素数的函数,在主函数中输入两个正整数,判别这两个数之和是否是素数

54.输入梯形的上底、下底和高,计算梯形的面积,并输出结果

55.首先输入一个点A的平面坐标,在输入一个矩形的左上角和右下角的平面坐标,判断这个点A在矩形的内部、外部还是边上,输出计算结果。

56.输入1980年1月1日至2009年12月31日之间的任一年月日,计算该日期为该年的第几天。

57.从键盘输出两个三行三列的矩阵,输出这两个矩阵的和矩阵。

58.求a的平方根的迭代公式Xn+1 = (Xn+a/Xn)/2设计一个自定义求平方根函数,并利用此函数输出1-100的平方根。

59.1千克=2.2046226磅,输入一物体的质量(以千克为单位),计算该物体有多少磅,输出计算结果

60.标准差公式为 a=sqrt(1/NΣi=1-->N(Xi-u)²)公式中N为样本个数,Xi为样本值,u为样本均值,输入20个数

61.设计一个函数可以将10进制转化为2进制字符串,并利用此函数计算从键盘的输入的3个10进制正数,输出相应的2进制数。

62.编写程序输出100-300之间的所能同时被3和5整除的数

63.编写一个程序,将两个字符串链接起来,要求不用strcat函数

64.判断是否是水仙花数

65.已知圆柱高h=5,要求输入圆的半径,求出圆周长,圆的面积和圆柱体积,输入对应数字输出对应结果

66.矩阵转置:将二维数组a的行和列元素互换后存到另一个二维数组b中

67.输入4个数,输出4个数的总和以及平均值

68.判断一元二次方程ax²+bx+c=0的根

69.实现公路收费站的车辆收费问题。根据输入的车辆类型,输出对应的收费,A类车:15元 B类车:35元 C类车:50元  D类车:70元


1. 有1,2,3,4个数字,能组成多少个互不相同的无重复数字的三位数?都是多少?

//编程1:有1,2,3,4个数字,能组成多少个互不相同的无重复数字的三位数?都是多少?
#include"stdio.h"
main(){
	int i,j,k;
	printf("\n");
	for(i=1;i<5;i++){
		for(j=1;j<5;j++){
			for(k=1;k<5;k++){
				if(i!=k&&i!=j&&k!=j)
				printf("%d%d%d\n",i,j,k);
			}
		}
	}
	return 0;
}

 2.企业发放奖金根据利润提成。利润不高于十万时,奖金可提10%,高于十万时,低于十万部分不变,高于十万部分可提7.5%,20万到40万时,高于20万部分可提5%,40万到六十万时高于四十万部分可提3%,60万到100万,高于60万部分可提1.5%,超过100万按1%提成。键盘输入当月利润 i,求发放的奖金。

/*编程2:企业发放奖金根据利润提成。利润不高于十万时,奖金可提10%,高于十万时,低于十万部分不变,
高于十万部分可提7.5%,20万到40万时,高于20万部分可提5%,40万到六十万时高于四十万部分可提3%,
60万到100万,高于60万部分可提1.5%,超过100万按1%提成。键盘输入当月利润 i,求发放的奖金。*/
#include"stdio.h"
main(){
	long int i;   //呆滞刻板
	int sum=0;
		scanf("%d",&i);
		if(i<=100000)    
		sum=i*0.1;
			else if(i<=200000)
				sum=100000*0.1+100000*0.075;
					else if(i<=400000)
						sum=100000*0.1+100000*0.075+200000*0.05;
							else if(i<=600000)
								sum=100000*0.1+100000*0.075+200000*0.05+200000*0.03;
									else if(i<=1000000)
										sum=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015;
											else sum=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01;
											printf("sum=%d",sum);
											return 0;
}

第二种:
#include"stdio.h"
int main(){
double i,w1,w2,w4,w6,w10,sum=0;
scanf("%lf",&i);
w1=100000*0.1;
w2=w1+100000*0.075;
w4=w2+200000*0.05;
w6=w4+200000*0.03;
w10=w6+400000*0.015;
if(i<=100000)
	sum=i*0.1;
		else if(i<=200000)
			sum=w1+(i-100000)*0.075;
				else if(i<=400000)
					sum=w2+(i-200000)*0.05;
						else if(i<=600000)
							sum=w4+(i-200000)*0.03;
								else if(i<=1000000)
									sum=w6+(i-600000)*0.015;
										else 
											sum=w10+(i-1000000)*0.01;
	printf("sum=%lf",sum);
	return 0;						                                                                                                                                                                                                                                                                                                      
}

3.一个整数它加上100后是一个完全平方数,加上168又是一个完全平方数,请问数是多少。(int型)

//编程3:一个整数它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问数是多少。
#include"stdio.h"
#include"math.h"
main(){
	long int i,x,y,z;
	for(i=1;i<1000000;i++)
	{
		x=sqrt(i+100);
		y=sqrt(i+168);
		if(x*x==i+100&&y*y==i+168)
		printf("\n%ld\n",i);
	}
	return 0;
}

4.输入某年某月某日,判断这一天是这一年的第几天?

//编程4:输入某年某月某日,判断这一天是这一年的第几天?
#include"stdio.h"
main(){
	
	int day,month,year,sum=0,leap;
	printf("请输入某年某月某天");
	scanf("%d,%d,%d",&year,&month,&day);//输入格式符合条件 例如:2022,3,7
	switch(month)
	{
		case 1:sum=0;break;
		case 2:sum=31;break;
		case 3:sum=59;break;
		case 4:sum=90;break;
		case 5:sum=120;break;
		case 6:sum=151;break;
		case 7:sum=181;break;
		case 8:sum=212;break;
		case 9:sum=243;break;
		case 10:sum=273;break;
		case 11:sum=304;break;
		case 12L:sum=334;break;         
		default:printf("error\n");
	}
	sum=sum+day;//总的sum= sum+是某月的第几天
	if(year%400==0||(year%4==0&&year%100!=0))
			leap=1;
	else 
			leap=0;
	if(leap==1&&month>2) //若是闰年且月份大于2月份加一天
	sum++;
	printf("是该年的第%d天",sum);
	return 0;                                                                                                                                          		
}

5.三个数排序

//编程5:输入三个整数想,x,y,z,三个数从小到大输出
#include"stdio.h"
main(){
	int x,y,z,t;
	scanf("%d%d%d",&x,&y,&z);
	if(x>y)
		{t=x,x=y,y=t;}
	if(x>z)
		{t=x,x=z,z=t;}
	if(y>z)
		{t=y,z=y,z=t;}
	printf("%d %d %d\n",x,y,z);
	return 0;	
}	

6.输出九九乘法表

//编程6:输出九九乘法口诀
#include"stdio.h"
main() {
int i,j,sum=0;
for(i=1;i<10;i++){
	for(j=1;j<=i;j++){
		sum=i*j;
		printf("%d*%d=%-3d",i,j,sum);
	}
	printf("\n");
}
return 0;
}

7. 输出国际象棋棋盘

//编程7:输出国际象棋棋盘
#include"stdio.h"
main(){
	int i,j;
	for(i=0;i<8;i++){
		for(j=0;j<8;j++){
			if((i+j)%2==0)
				printf("%c%c",0xa8,0x80);
				else 
					printf(" ");	
			}
	printf("\n");
	}
return 0;
}

8.输出楼梯图形

//编程8:输出楼梯图形
#include"stdio.h"
main(){
	int i,j;
	for(i=1;i<11;i++){
		for(j=1;j<=i;j++){
			printf("%c%c",0xa8,0x80);
		}
		printf("\n");
	}
	return 0;
}

9.有一对兔子,从出生第三个月之后,每个月生一对兔子,小兔子长到第三个月又生一对兔子,假如兔子不死,求每个月兔子的数量是多少?一年之后是多少?

//编程9:有一对兔子,从出生第三个月之后,每个月生一对兔子,小兔子长到第三个月又生一对兔子,、
//假如兔子不死,求每个月兔子的数量是多少?一年之后是多少?
#include"stdio.h"
main(){
	long f1,f2;
	int i;
	f1=f2=1;
	for(i=1;i<=12;i++){
		printf("%12d%12d",f1,f2);
		if(i%2==0) printf("\n");                                                                                                                                     
		f1=f1+f2;
		f2=f1+f2;
	}
	return 0;
}

10.编程题10:输出101--200之间的素数

//编程题10:输出101--200之间的素数
#include"stdio.h"
main(){
	int i,j,cnt=0;
	for(i=101;i<=200;i++){
		for(j=2;j<i;j++){
			if(i%j==0) break;	
		}
		if(i==j){
			printf("%-5d",i);
			cnt++;
			if(cnt%5==0)
			printf("\n");
		}
		
	}
	return 0;
}

11.打印100-1000内的水仙花数

//编程11:打印100-1000内的水仙花数
#include"stdio.h"
main(){
	int i,j,k,n;
	for(n=100;n<1000;n++){
		i=n/100;
		j=n/10%10;
		k=n%10;
		if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
		printf("%-5d",n);
	}
	return 0;
}

12.将一个正整数分解因数。例如:输入90,打印90=2*3*3*5

//编程12:将一个正整数分解因数。例如:输入90,打印90=2*3*3*5
#include"stdio.h"
main(){
	int n,i;
	scanf("%d",&n);
	printf("%d=",n);
	for(i=2;i<=n;i++)
	while(n!=i){
		if(n%i==0){
			printf("%d*",i);
			n=n/i;
		}
		else 
			break;
	}
	printf("%d",n);
	return 0;
}

13.利用条件运算符完成。>=90的同学用A表示,60-89分用B表示,60分以下用C表示

//编程13利用条件运算符完成。>=90的同学用A表示,60-89分用B表示,60分以下用C表示
#include"stdio.h"
main(){
	int cj;
	char g;
	scanf("%d",&cj);
	g=cj>=90?'A':(cj>=60?'B':'C');
	printf("%d %c\n",cj,g);
	return 0;
}

14.辗除法实现输入两个正整数m和n,求最大公约数和最小公倍数。

//编程14:输入两个正整数m和n,求最大公约数和最小公倍数。
#include"stdio.h"
main(){
	int a,b,num1,num2,t;
	printf("输入两个正整数\n");
	scanf("%d,%d",&num1,&num2);
	if(num1<num2){
		t=num1;
		num1=num2;
		num2=t;
	}
	a=num1,b=num2;
	while(b!=0){
		t=a%b;
		a=b;
		b=t;
	}
	printf("最大公约数=%d\n",a);
	printf("最小公倍数=%d\n",num1*num2/a);
	return 0;
}

15.输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。

//编程15:输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
#include"stdio.h"
main(){
	char c;
	int letters=0,space=0,figure=0,others=0;
	printf("请输入一行字符\n");
	while((c=getchar())!='\n'){
		if(c>='a'&&c<='z'||c>='A'&&c<='Z')
				letters++;
			else if(c==' ')
				space++;
			else if(c>='0'&&c<='9')
				figure++;
			else others++;
	}
	printf("letters=%d,space=%d,figure=%d,others=%d",letters,space,figure,others);
	return 0;
}

16.求a+aa+aaa+aaaa+aaaaa+...+aa...a的值,a是一个数字及其变式。

//编程16:求a+aa+aaa+aaaa+aaaaa+...+aa...a的值,a是一个数字。
#include"stdio.h"
main(){
	int i,n,a,s=0,ss=0;
	printf("请输入多少项,值为多少。\n");
	scanf("%d,%d",&n,&a);//输出项的数量n和数值a
	for(i=0;i<n;i++){
			s=10*s+a;//例:2+22+222+2222 每次是上次数值 ×10+a ,计算每项的值
			ss+=s;	//计算总的值
	}
	printf("%d\n",ss);	
	return 0;
}

//s-ss类变式
//1+(1+2)+(1+2+3)+......+(1+2+3...+9+10)=?
//1!+2!+3!+......+9!+10!=?
//1/1+1/(1+3)+1/(1+3+5)+......+1(1+3+5+...+99)=?
//求 1/2+(1+3)/(2+4)+(1+3+5)/(2+4+6)+......+(1+3+5...+19)/(2+4+...+18+20)=?

//#include"stdio.h"
//int main()
//{
	/*int i,s=0,ss=0;
		for(i=1;i<=10;i++)
		{
			s+=i;
			ss+=s;
		}
		printf("%d\n",ss);*/
		
	/*int i,s=1,ss=0;
		for(i=1;i<=10;i++)
		{
			s*=i;
			ss+=s;
		}
		printf("%d\n",ss);*/
		
	/*int i;float s=0,ss=0;
			for(i=1;i<=99;i+=2)
			{
				s+=i;
				ss+=1/s;
			}
		printf("%.4f\n",ss);*/
		
	/*	float i,m,s1=0,s2=0,ss=0;
		for(i=1,m=2;i<=19;i+=2,m+=2)
			{
				s1+=i;
				s2+=m;
				ss+=s1/s2;
			}
		printf("%f\n",ss);*/
			
//	return 0;
//}


//#include"stdio.h"
//int main()
//{
//	int i,x,ss=0,s=1;
//	printf(".....\n");
//	scanf("%d",&x);
//	for(i=1;i<=20;i++)
//	{
//		s*=(x-i);
//		ss+=s;
//	}
//	printf("%d\n",ss);
//	return 0;
//}

17.一个数恰好是他的因子之和,这个数就被称为“完数”。例如;6=1+2+3.求1000内的完数

//编程17:一个数恰好是他的因子之和,这个数就被称为“完数”。例如;6=1+2+3.求1000内的完数。
#include"stdio.h"
main(){
	int i,j,s;
	for(i=2;i<=1000;i++){
		s=0;//s每次都要置0,所以放for循环例里面
		for(j=1;j<i;j++){
			if(i%j==0) //判断J是I的因子
			{
				s+=j;
			}
		}
		if(s==i)//除本身因子之和如果等于本身,则是完数
			printf("%d是完数\n",i);
	}
	return 0;
}

18.一球从100米高度自由落下,每次落地反弹后跳回原来高度的一半,再落下,
求十次落地后,共经过多少米?第10次多高?

//编程18:一球从100米高度自由落下,每次落地反弹后跳回原来高度的一半,再落下,
//求十次落地后,共经过多少米?第10次多高?
#include"stdio.h"
main(){
	float s=100.0,h=50;
	int i,cnt=1;
	for(i=2;i<=10;i++){
		s=s+h*2;//第一次下落s=100米 反弹高度=下落高度  =2*h
		h/=2;//减半
		cnt++;
		printf("第%d次   %f米\n",cnt,s);
	}
	printf("共经过%f米\n",s);
	printf("第10次高度是%f米\n",h);
	return 0;
}

19.猴子吃桃问题:猴子第一天摘了若干个桃子,当即吃了一半,不过瘾,又吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃了一个。以后每天都吃了前一天的一半多一个,到第10天只剩一个桃子。求第一天吃了多少?

//编程19:猴子吃桃问题:猴子第一天摘了若干个桃子,当即吃了一半,不过瘾,又吃了一个,
//第二天早上又将剩下的桃子吃了一半,又多吃了一个。以后每天都吃了前一天的一半多一个,
//到第10天只剩一个桃子。求第一天吃了多少?

//程序分析:逆向思维
#include <stdio.h>
#include <stdlib.h>
int main(){
    int day, x1 = 0, x2;
    day=9;
    x2=1;
    while(day>0) {
        x1=(x2+1)*2;  // 第一天的桃子数是第2天桃子数加1后的2倍
        x2=x1;
        day--;
    }
    printf("总数为 %d\n",x1);
    
    return 0;
}

20.两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。比赛名单顺序。a不和x比,c说不和x,z比,请找出三队选手的比赛名单。

//编程20:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。比赛名单顺序。
//a不和x比,c说不和x,z比,请找出三队选手的比赛名单。
#include"stdio.h"
main(){
	  
	  
}

21.打印菱形,数字类图形

//编程21:图形打印
//    *
//   ***
//  *****
// *******
//*********
// *******
//  *****
//   ***
//    *

//程序分析:把图形分为两部分看待,前五行,后四行,for循环嵌套,i循环次数,j输出空格,k输出*
#include"stdio.h"
main(){
	int i,j,k;
	for(i=1;i<=5;i++){  //第一个for循环,嵌套两个小for循环
		for(j=1;j<=5-i;j++)//前五行空格
			printf(" ");
		for(k=1;k<=2*i-1;k++)//输出前五行*
			printf("*");
			printf("\n");//程序执行一边换行
	}
	for(i=1;i<=4;i++){  //第二个for循环,嵌套两个小for循环
		for(j=1;j<=i;j++)//后四行空格
			printf(" ");
		for(k=1;k<=9-2*i;k++)//输出后四行*
			printf("*");
		printf("\n");	//程序执行一边换行
	}
	return 0;  
}


//图形类1
/*
******
 ******
  ******
   ******
   */
#include"stdio.h"
int main(){
	/*int i,j;
		for(i=1;i<=4;i++){
			for(j=1;j<=i-1;j++)
			printf(" ");
			for(j=1;j<=6;j++){
				printf("*");
				printf("\n");
			}
		}*/
		
//数字类:printf("*");换成printf("%d",i(b变)或j(变))
//例:		1        5       1       5
//         12       45      21       45
//        123      345     321       345
//       1234     2345    4321       2345
//      12345    12345   54321       12345
int i,j,k;
	/*for(i=1;i<=5;i++){
			for(j=1;j<=5-i;j++){
				printf(" ");
			}
			for(j=1;j<=i;j++){
				printf("%d",j);
			}
			printf("\n");
		}*/
		
		
	/*for(i=1;i<=5;i++){
			for(j=1;j<=5-i;j++){
				printf(" ");
			}
			for(j=6-i;j<=5;j++){
				printf("%d",j);
			}
			printf("\n");
		}*/
		
	/*for(i=1;i<=5;i++){
			for(j=1;j<=5-i;j++){
				printf(" ");
			}
			for(k=i;k>=1;k--){
				printf("%d",k);
			}
		
			printf("\n");
		}*/
	
	for(i=1;i<=5;i++){
		for(j=6-i;j<=5;j++){
			printf("%d",j);
		}
		printf("\n");
	}			
		
	return 0;
}




//图形类2
/*  A
   AB
  ABC
 ABCD
ABCDE */

//#include"stdio.h"
//int main(){
//	
//	int i,j;
//	for(i=1;i<=5;i++){
//			for(j=1;j<=5-i;j++){
//				printf(" ");
//			}
//			for(j=1;j<=i;j++){
//				printf("%c",j+64);
//			}
//			printf("\n");
//		}
//}

//九九乘法表
//	int i,j;	
//	for(i=1;i<=9;i++){
//		for(j=1;j<=i;j++){
//			printf("%d*%d=%-3d",i,j,i*j);
			printf("%d*%d=%-3d",j,i,i*j);
//		}
//		printf("\n");
//	} 	 
//}
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值