经典C语言程序设计100例:1-10例

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

#include <stdio.h>
main()
{
int i,j,k,n=0;
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
if(i!=j&&i!=k&&j!=k)
{
n++;
printf("%d%d%d ",i,j,k);
if(n%6==0){ printf("\n");}
}
printf("n=%d\n",n);
}

2. 工资发放问题

(1,10w) 0.1

(10w,20w) 0.075

(20w,40w) 0.05

(40w,60w) 0.03

(60w,100w) 0.015

(100w,...) 0.01

#include <stdio.h>
main()
{
int i;
int u=100000;
float c1,c2,c4,c6,c10,c;
c1=u*0.1;
c2=c1+u*0.075;
/* c4=c2+2u*0.05;
c6=c4+2u*0.03;
c10=c6+4u*0.015;*/
printf("i=");
scanf("%d",&i);
if(i<=u)
{ c=i*0.1;}
else if(i<=2u)
{ c=c1+(i-u)*0.075;}
else
{ c=i*0.03;}
printf("c=%f\n",c);
}//run to the false result, if not use u, run rightly.

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

#include <stdio.h>
#include <math.h>
main()
{
int i,x,y;
for(i=1;i<100000;i++)
{
x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268)
printf("%d\n",i);
}
} //不知道数学上是怎么求的?

4. 输入某年某月某日,获取当前是这一年的第几天?

#include <stdio.h>
main()
{
int d,m,y,sum,leap;
printf("please input year-month-day\n");
scanf("%d-%d-%d",&y,&m,&d);
switch(m)
{
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 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+d;
if(y%400==0||(y%4==0&&y%100!=0))
leap=1;
else
leap=0;
if(leap==1&&m>2)
sum++;
printf("It is the %dth day.\n",sum);
}

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;y=z;z=t;}
printf("small to big: %d %d %d\n",x,y,z);
}

6. 用*号输出字母C的图案。

#include <stdio.h>
main()
{
printf("Hello C-world!\n");
printf("****\n");
printf("*\n");
printf("*\n");
printf("****\n");
}

7. 题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

#include <stdio.h>
main()
{
char a=176;
printf("%c\n",a);
} //字符问题搞不懂

8. 9*9乘法表

#include <stdio.h>
main()
{
int i,j,result;
printf("\n");
for(i=1;i<10;i++)
{
for(j=1;j<10;j++)
{
result=i*j;
printf("%d*%d=%-3d ",i,j,result);/*-3d表示左对齐,占3位*/
}
printf("\n");
}
} //乘法表有好多变种

9. 要求输出国际象棋棋盘。

#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("%d%d",2,2); //答案用的是:%c%c, 219,219 搞不懂
else
printf(" ");
}
printf("\n");
}
}
10. 打印楼梯

#include <stdio.h>
main()
{
int i,j;
printf("\1\1\n");/*输出两个笑脸*/
for(i=1;i<5;i++)
{
for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
} //有好多变种
时间: 2024-12-06 09:14:03

经典C语言程序设计100例:1-10例的相关文章

经典C语言程序设计100例 -- C 和 Python 版 (06 - 10)

[06]格式化输出 题目:用*号输出字母C的图案. 思路:可先用'*'号在纸上写出字母C,再分行输出.如果输出图形较大,且有规律可循,可考虑使用循环. C 语言代码 int main() { const char *p = " **** \n" " ** ** \n" "** \n" "** \n" "** \n" " ** ** \n" " **** \n"; pr

黑马程序员——经典C语言程序设计100例

1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘 10.打印楼梯并按条件打印笑脸 11.经典兔子问题 12.判断素数 13.水仙花数问题 14.正整数分解质因数 15.学习成绩划分 16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数 18.求s=a+aa+aaa+aa...a的值 19.求解"完数" 20.球体自由落下物理问题

经典C语言程序设计100例

[程序1]题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? [程序2]题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万之间时,高于20万元的部分,可提成5%:40万到60万之间时高于40万元的部分,可提成3%:60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提

C语言程序设计100例之(4):水仙花数

例4    水仙花数 题目描述 一个三位整数(100-999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33),找出所有的这种数. 输入格式 没有输入 输出格式 若干行,每行1个数字. 输入样例 无 输出样例 153 * * * ... * * * (输出被和谐了) (1)编程思路1. 对三位数n(n为100~999之间的整数)进行穷举.对每个枚举的n,分解出其百位a(a=n/100).十位b(b=n/10%10)和个位c( c=n%10),若满足a*a*a+

C语言程序设计100例之(3): Cantor表

例3    Cantor表 题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1  1/2  1/3  1/4  …… 2/1  2/2  2/3  …… 3/1  3/2  …… 4/1  …… …… 现以z字型方法给上表的每项编号.方法为:第一项是1/1,然后是1/2.2/1.3/1.2/2.1/3.1/4.2/3……. 输入格式 整数N(1≤N≤10000000) 输出格式 表中的第N项 输入样例 7 输出样例 1/

C语言程序设计100例之(14):丑数

例14   丑数 问题描述 丑数是其质因子只可能是2,3或5的数.前10个丑数分别为1, 2, 3, 4, 5, 6, 8, 9, 10, 12.输入一个正整数n,求第n个丑数. 输入格式 每行为一个正整数n (n <= 1500),输入n=0结束. 输出格式 每行输出一个整数,表示求得的第n个丑数. 输入样例 1 2 50 0 输出样例 1 2 243 (1)编程思路. 根据丑数的定义,丑数从小到大排列的序列中的一个数应该是其前面某个数乘以2.3或者5的结果.因此,可以定义一个数组num[15

C语言程序设计100例之(10):最大公约数

例10        最大公约数 问题描述 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. 输入数据 第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b. 输出格式 输出对应的c,每组测试数据占一行. 输入样例 2 6 2 12 4 输出样例 4 8 (1)编程思路. 利用转辗相除法求两个整数的最大公约数.例如,求整数m=48,n=18两个数的最大公约数的方法如左图所示. 具体做法是:

C语言程序设计100例之(9):生理周期

例9    生理周期 问题描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为 23 天.28 天和33 天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精力容易高度集中.因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天.对于每个人,我们想知道何时三个高峰落在同一天. 对于每个周期,我们会给出从当前年份的第一天开始,到出现高峰的天数(不一定是第一次高峰出现的时间).你的任务是给定一个从当年第一天开始数的天数

C语言程序设计100例之(22):插入排序

例22  插入排序 问题描述 排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素或记录的任意序列,重新排列成一个以关键字递增(或递减)排列的有序序列. 排序的方法有很多,简单插入排序就是一种简单的排序算法. 插入排序的基本思想是顺序将一个待排序的记录按其关键字值的大小插入到一个有序的序列中,插入后该序列仍然是有序的. 简单插入排序是一种最简单的排序方法.它的排序过程为:先将待排序序列中第1个记录看成是一个有序的子序列,然后从第2个记录起依次逐个地插入到这个有序的子序列中去.这很像玩扑