int main()
{
char ch;
printf(\"Enter an character:\");
scanf(\"%c\
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
printf(\"%c is an alpha\\n\
else
if(ch>='0'&&ch<='9')
printf(\"%c is a numeric\\n\
else
printf(\"%c is other character\\n\
return 0;
}
某单位马上要加工资,增加金额取决于工龄和现工资两个因素:对于工龄大于等于20年的,如果现工资高于2000,加200元,否则加180元;对于工龄小于20年的,如果现工资高于1500,加150元,否则加120元。工龄和现工资从键盘输入,编程求加工资后的员工工资。
#include int main ( )
{
double salary;
int year;
printf(\"输入工龄和工资:\");
scanf(\"%d%lf\
if(year>=20)
if(salary>2000)
salary=salary+200;
else
salary=salary+180;
else
if(salary>1500)
salary=salary+150;
else
salary=salary+120;
printf(\"after altered:%.2f\
return 0;
}
用while或do...while语句实现:输入一个正整数,计算并输出该数的各位数字之和。如:输入12345,其和为1+2+3+4+5。
#includevoid main()
{ int data,s=0;
scanf(“%d”,&data);
while(data>0)
{
s=s+data%10;
data=data/10;
}
printf(“s=%d”,s);
}
从键盘输入若干数,求其中最大数和最小数,直到输入的数为0时结束。(要求画此题
的流程图)
#includevoid main()
{ int data,max,min;
scanf(“%d”,&data);
max=min=data; //必须用若干数中的任一个数对max,min赋初值
while(data!=0)
{
if(data>max) max=data;
if(datascanf(“%d”,&data);}
Printf(“max=%d,min=%d”,max,min);
}
统计选票:现输入选票如下:
3,1,2,1,1,3,3,2,1,2,3,3,3,2,1,1,3,2,0,4,-1
其中:-1是结束标志;1选李,2选张,3选吴,0,4为废票,统计候选人票数。
int main()
{ int vote, l_vote=0,zh_vote=0,w_vote=0,other_vote=0;
scanf(“%d”,&vote);
for(;vote!=-1;)
{
switch(vote)
{ case 1: l_vote++;break;
case 2:zh_vote++;break;
case 3:w_vote++;break;
default: other_vote++;
}
scanf(“%d”,&vote);
}
printf(“Li:%d;Zhao:%d;
Wu:%d ;Other:%d”,l_vote,zh_vote,w_vote,other_vote);
return 0;
}
求两个正整数的最小公倍数和最大公约数。
提示:需使用两个循环结构,一个循环求最小公倍数,一个求最大公约数。
#includeint main()
{ int a,b,t,beishu,yueshu;
scanf(“%d%d”,&a,&b);
if(afor(beishu=a; beishu%a!=0 || beishu%b!=0;beishu++) ;
for(yueshu=b; a%yueshu!=0 || b%yueshu!=0;yueshu--);
printf(“beishu=%d,yueshu=%d”,beishu,yueshu);
return 0;
}
求最大公约数方法二
for(yueshu=b;yueshu>=1;yueshu--)
{ if(a%yueshu==0 && b%yueshu==0)
break;
}
求最小公倍数方法二
for(beishu=a;beishu<=a*b;beishu++)
{
if(beishu%a==0 && beishu%b==0)
break;
}
输入两个正整数a和n,计算a+aa+aaa+…的和。例如
输入2和3,则计算2+22+222的和,输出246
#includeint main()
{
int a,n,i,s=0,t;
printf(\"input a and n:\\n\");
scanf(\"%d%d\
t=a;
for(i=0;i{s=s+t;
t=t*10+a; //各项的生成规律
}
printf(\"s=%d\
return 0;
}
输出以下图案,图案的行数由输入的整数值确定(每行中字符之间没有空格)。
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
#include #include int main()
{
char ch='A';
int n,i,j,k;
scanf(\"%d\
for(i=1;i<=n;i++)
{
for(j=0;j{printf(\" \");
}
for(k=0;k<2*i-1;k++) /*output character*/
{
printf(\"%c\
}
printf(\"\\n\");
ch++;
}
return 0;
}
一个灯塔有8层,共有765盏灯,其中每一层的灯数都是其相邻上层的两倍,求最底层的
灯数。
#includeint main( )
{ int x,s,i,k;
for(x=1;x<765/2;x++)
{ s=0;
k=x; //塔顶灯数
for(i=1;i<=8;i++)
{ s=s+k; k=k*2; }
if(s==765) break;
}
printf(“%d”,k/2);
return 0;
}
求100~200间的所有素数。(穷举法)
#includeint main( )
{ int x,flag=1,i; //flag取值1为素数标志;取值0为非素数标志
for(x=100;x<=200;x++)
{ flag=1;
for(i=2;iif(x%i==0) flag=0;if(flag) printf(\"%d\\n\
}
return 0;
}
求素数也可以改为
#includeint main( )
{ int x,i;
for(x=100;x<=200;x++)
{ flag=1;
for(i=2;iif(x%i==0) break; //循环若中途跳出说明是非素数if(i>=x) printf(\"%d\\n\
}
return 0;
}
编程打印出100~1000间的所有的\"水仙花数\"。所谓水仙花数:是指一个三位数, 其各位数字的立方之和等于该数。
#includeint main()
{
int i,h,t,b;
printf(\"打印出100~1000间的所有的水仙花数:\\n\");
for(i=100;i<1000;i++)
{
h=i/100;
t=(i-h*100)/10;
b=i%10;
if(h*h*h+t*t*t+b*b*b==i)
printf(\"%d\\n\
}
return 0;
}
36人一次搬36块砖,男搬4,女搬2,两个小孩抬一块。要一次搬完。问:男、女、小孩要多少?
#includeint main()
{
int x,y,z;
for(x=0;x<=9;x++)
{
for(y=0;y<=18;y++)
for(z=0;z<=72;z++)
if(4*x+2*y+z/2.0==36)
{ printf(\"x=%d y=%d z=%d\\n\
}
return 0;
}
找出1000以内的完数,所谓完数是指该数的各因子之和等于该数,如6=1+2+3。
#includeint main()
{
int i,x,y;
for(i=1;i<=1000;i++)
{
y=0;
for(x=1;x{
if(i%x==0)
y=y+x;
}
if(y==i)
printf(\"%d\\n\
}
return 0;
}
搬砖问题修改
#includeint main()
{
int b,g,c;
for(b=0;b<=9;b++)
for(g=0;g<=18;g++)
for(c=0;c<=72;c++)
if(4*b+2*g+c/2.0==36&&b+g+c==36)
printf(\"男b=%d,女g=%d,小孩c=%d\\n\
return 0;
}
******
******
******
******
#includevoid main()
{
int row,col;
for(row=1;row<=4;row++)
{
for(col=1;col<=4-row;col++)
printf(\" \");
for(col=1;col<=5;col++)
printf(\"*\");
printf(\"\\n\");
}
}