#includestdio.h
main()
{charc;
printf(pleaseinputastring:);
while((c=getchar())!=\n)
{if(c=Ac=W
c=ac=w)c=c+3;
elseif(c=Xc=Z
c=xc=z)c=(c+3)-26;
printf(%c,c);
}
printf(\n);
return0;
}
2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
#includestdio.h
#includeconio.h
voidmain()
{
intn,R,i=0,a[16]={0};
charstr[16]=ABCDEF;
clrscr();
printf(pleaseinputanintegernumber:\n);
scanf(%d,n);
printf(pleaseinputR:\n);
scanf(%d,R);
if(n0)
{
printf(%c,-);
n=-n;
}
while(n!=0)
{
a[i++]=n%R;
n=n/R;
}
while(i--0)
printf(%c,str[a[i]]);
getche();
}
3、从键盘输入一指定金额(以元为单位,如.78),然后显示支付该金额的各种面额人民币数量,要求显示元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
#includestdio.h
main()
{inta1,a2,a3,a4,a5,a6,a7,a8,a9;
floatf;
a1=a2=a3=a4=a5=a6=a7=a8=a9=0;
printf(pleaseinputafloatnumber:);
scanf(%f,f);
while(f.0)
{f=f-.0;
a1++;
}
while(f50.0)
{f=f-50.0;
a2++;
}
while(f10.0)
{f=f-10.0;
a3++;
}
while(f5.0)
{f=f-5.0;
a4++;
}
while(f1.0)
{f=f-1.0;
a5++;
}
while(f0.5)
{f=f-0.5;
a6++;
}
while(f0.1)
{f=f-0.1;
a7++;
}
while(f0.05)
{f=f-0.05;
a8++;
}
while(f0.01)
{f=f-0.01;
a9++;
}
printf(a1=%d,a2=%d,a3=%d,a4=%d,a5=%d,a6=%d,a7=%d,a8=%d,a9=%d\n,a1,a2,a3,a4,a5,a6,a7,a8,a9);
return0;
}
4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
#includestdlib.h
#includeconio.h
voidmain()
{
inta[21],i,ran,max,min,sum,average;
clrscr();
for(i=1;i=20;i++)
{
while((ran=random(51))/10==0)//ensureranbetween20and50;
a[i]=ran;
}
max=min=a[1];//initializehere
sum=0;
for(i=1;i=20;i++)
{
printf(a[%d]=%d\n,i,a[i]);
sum+=a[i];
if(maxa[i])
max=a[i];
elseif(mina[i])
min=a[i];
}
average=sum/20;
printf(\nsum=%d,max=%d,min=%d,average=%d\n,sum,max,min,average);
puts(\nanykeytoexit!);
getche();
}
#includestdlib.h
#includeconio.h
#includetime.h
voidmain()
{
inta[21],i,ran,max,min,sum,average;
srand(time(NULL));
for(i=1;i=20;i++)
{
ran=10+rand()%41;
a[i]=ran;
}
5、编程在一个已知的字符串中查找最长单词的长度,假定字符串中只含字母和空格,空格用来分隔不同单词。
#includestdio.h
#includeconio.h
voidmain()
{
charstring[80],*p;
inti=0,max=0;
clrscr();
printf(pleaseinputastring:\n);
gets(string);
//printf(\n%s\n,string);
p=string;
while(*p!=\0)
{
if(*p==)
{
if(max=i)
max=i;
i=0;
}
else
i++;
p++;
}
if(max=i)
max=i;
printf(\nmax_lengthofthestringis:%d\n,max);
getche();
}
1、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
#includestdio.h
#includeconio.h
#includestdlib.h
#includetime.h
voidmain()
{
inti,n,A,B,C,D,abandon,ran;//abandonstandfortheoneswhoabandon
clrscr();
A=B=C=D=abandon=0;
printf(Enterthenumberofpersons:);
scanf(%d,n);//npersonstoselectfromcandidatea,b,candd.
randomize();
for(i=1;i=n;i++)
{
ran=random(5)+65;//A,B,C,Dandtheoneswhoabandon
switch(ran)
{
caseA:A++;break;
caseB:B++;break;
caseC:C++;break;
caseD:D++;break;
default:abandon++;
}
}
printf(\nA=%d,B=%d,C=%d,D=%d,abandon=%d\n\n,A,B,C,D,abandon);
i=4;
while(i--!=0)
{
if(A=BA=CA=DA!=-1)
{
printf(A=%d,,A);
A=-1;
}
if(B=AB=CB=DB!=-1)
{
printf(B=%d,,B);
B=-1;
}
if(C=AC=BC=DC!=-1)
{
printf(C=%d,,C);
C=-1;
}
if(D=AD=BD=CD!=-1)
{
printf(D=%d,,D);
D=-1;
}
}
printf(abandon=%d,\n\n,abandon);
getch();
}
7.任何一个自然数m的立方均可写成m个连续奇数之和。例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
编程实现:输入一自然数n,求组成n3的n个连续奇数。
#includeconio.h
#includestdio.h
#includemath.h//
voidmain()
{
inti,j,n,sum,count;
clrscr();
printf(\nanintegerhereplease:);
scanf(%d,n);
printf(\n);
//i=(int)floor(sqrt((float)n));
//if(i%2==0)
//i++;
i=1;//
for(;i=n*n*n;i+=2)
{
sum=0;
count=0;
for(j=i;j=n*n*n;j+=2)
{
sum=sum+j;
count++;
if((n*n*n==sum)(count==n))
break;
}
if((sum==n*n*n)(count==n))
break;
}
printf(i=%d,j=%d\n\n,i,j);
printf(%d*%d*%d=,n,n,n);
//while(n--1){printf(%d+,i);i+=2;}
for(;ij;i+=2)//
printf(%d+,i);//
printf(%d,i);
getch();
}
8、已知abc+cba=,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。#includestdio.h
#includeconio.h
voidmain()
{
intnum,a,b,c;
clrscr();
printf(Pressanykeytocalculate!\n\n);
getch();
for(num=;num0;num++)
{
a=num/;
b=num%/10;
c=num%10;
if(num+c*+b*10+a==)
printf(\n%d+%d=\n,num,c*+b*10+a);
}
while(!kbhit());
//kbhit用来检测键盘是否有按键,有则返回-1,没有则返回0.
//所以while(!kbhit()).就是没有按键的时候进行循环
}
9编制一个完成两个数的四则运算程序。如:用户输入34+56则输出结果90.00。要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
#includestdio.h
#includeconio.h
voidmain()
{
floatnum1,num2;
chars;
clrscr();
printf(Enterastatementplease:);
scanf(%f%c%f,num1,s,num2);
switch(s)
{
case+:printf(%.2f%c%.2f=%.2f,num1,s,num2,num1+num2);break;
case-:printf(%.2f%c%.2f=%.2f,num1,s,num2,num1-num2);break;
case*:printf(%.2f%c%.2f=%.2f,num1,s,num2,num1*num2);break;
case/:printf(%.2f%c%.2f=%.2f,num1,s,num2,num1/num2);break;
default:printf(InputError!);
}
getch();
}
2、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
如输入:,输出:5位数
5,6,4,3,9
9,3,4,6,5
#includeconio.h
#includestdio.h
longpower(intn)
{
inti;
longresult=1;
for(i=1;i=n;i++)
result=10*result;
returnresult;
}
voidmain()
{
longnum,n,j;
intcount=1,tmpcount;
clrscr();
printf(Pleaseinputanumber(0-):);
scanf(%ld,num);
n=num;
while((n=n/10)!=0)
count++;
printf(\n%ldisa%ddigits.\n\n,num,count);
tmpcount=count;//temporarytmpcountforlateruseinstatementA
n=num;
while(count--1)
{
j=power(count);
printf(%d,,n/j);
n=n%j;
}
printf(%d\n,n);
n=num;
while(tmpcount--1)//statementA
{
printf(%d,,n%10);
n=n/10;
}
printf(%d\n,n);
getch();
}
3、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。主函数:①输入任意10个正整数给数组;②调用SUB1对数组进行排序;③从键盘输入一个正整数,调用SUB2将其插入该数组。
#includeconio.h
#includestdio.h
voidmain()
{
inti,k,a[12]={0};//a[0]fornouse
voidsub1(intb[]),sub2(intb[],intk);
clrscr();
printf(Pleaseinput10numbers:);
for(i=1;i=10;i++)
scanf(%d,a[i]);
getchar();
sub1(a);
for(i=1;i=10;i++)
printf(\na[%d]=%d\n,i,a[i]);
printf(\n\npleaseinputanumbertobeinsertedintothearray:);
scanf(%d,k);
sub2(a,k);
for(i=1;i=11;i++)
printf(\na[%d]=%d\n,i,a[i]);
puts(\nAnykeytoexit!);
getch();
}
voidsub1(b)
intb[];
{
inti,j,t;
for(i=1;i10;i++)//thefirstoneisalwaysthesmallest
for(j=i;j=10;j++)
if(b[i]b[j])
{
t=b[i];
b[i]=b[j];
b[j]=t;
}
}
voidsub2(intb[],intk)
{
inti;
for(i=10;i=1;i--)
{
if(kb[i])
b[i+1]=b[i];
else
{
b[i+1]=k;
break;
}
}
}
4、编写函数:(1)用选择法将数组排成降序的函数----SUB1;(2)用折半查找法查找某数是否在给定的数组当中的函数----SUB2。主函数:输入任意10个正整数给数组,调用SUB1对数组进行排序,从键盘输入一个正整数,调用SUB2在数组中进行查找,找到后输出“OK”,没有找到则输出“NOFOUND!”。
#includeconio.h
#includestdio.h
voidmain()
{
inti,key,a[11]={0},sub1(),sub2();
printf(pleaseinput10number:);
for(i=1;i=10;i++)
scanf(%d,a[i]);
getchar();
sub1(a);
for(i=0;i=10;i++)
printf(a[%d]=%d,,i,a[i]);
printf(\npleaseinputakeynumber:);
scanf(%d,key);
sub2(a,key,1,10);
getch();
}
intsub1(intb[])
{
intt,i,j,post;
for(i=1;i10;i++)
{
post=i;
for(j=i+1;j=10;j++)
if(b[post]b[j])
post=j;
if(post!=i)
{
t=b[i];
b[i]=b[post];
b[post]=t;}
}
return0;
}
intsub2(intc[],intk,intn0,intn1)
{
inti=n0,j=n1,m;
m=(i+j)/2;
while(i=j)
{
if(kc[m])
j=m-1;
if(kc[m])
i=m+1;
if(k==c[m])
break;
m=(i+j)/2;
}
if(k==c[m])
printf(OK!\n);
else
printf(NOFOUND!\n);
return0;
}
5、编写一个程序,输入两个包含5个元素的数组,先将两个数组升序排列,然后将这两个数组合并成一个升序数组。
#includestdio.h
#includeconio.h
voidmain()
{
inti,j,k,a[6]={0},b[6]={0},c[11]={0},sub1();
clrscr();
printf(\npleaseinput5intnumberstoarray1:);
for(i=1;i=5;i++)//a[0]fornouse
scanf(%d,a[i]);
getchar();
sub1(a,5);
printf(\npleaseinput5intnumberstoarray2:);
for(i=1;i=5;i++)//b[0]fornouse
scanf(%d,b[i]);
getchar();
sub1(b,5);
printf(\nthesortedarrayais:\n\n);
for(i=1;i=5;i++)
printf(a[%d]=%d,i,a[i]);
printf(\n);
printf(\nthesortedarraybis:\n\n);
for(i=1;i=5;i++)
printf(b[%d]=%d,i,b[i]);
k=i=j=1;
while(i=5j=5)
if(a[i]b[j])
c[k++]=a[i++];//c[0]fornouse
else
c[k++]=b[j++];
if(ij)//appendingtherestonesinarraya
for(;i=5;i++)
c[k++]=a[i];
else//appendingtherestonesinarrayb
for(;j=5;j++)
c[k++]=b[j];
printf(\n\n);
printf(\nthemergedarraycis:\n\n);
for(k=1;k=10;k++)
{
if(k==6)
printf(\n);
printf(c[%d]=%d,k,c[k]);
}
while(!kbhit());
}
intsub1(intb[],intn)
{
intt,i,j,post;
for(i=1;in;i++)
{
post=i;
for(j=i+1;j=n;j++)
if(b[post]b[j])
post=j;
if(post!=i)j
{j
t=b[i];
b[i]=b[post];
b[post]=t;
}
}
return0;
}
6、耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。
/*
//approachone
#defineN13
#includestdio.h
#includeconio.h
structperson
{
intnumber;//itsorderintheoriginalcircle
intnextp;//recorditsnextperson
};
structpersonlink[N+1];//link[0]fornouse
voidmain()
{
inti,count,next;//countfor12persons,and
//nextforthepersonnotoutofcircleyet
clrscr();
for(i=1;i=N;i++)
{
link[i].number=i;//numberingeachperson
if(i==N)
link[i].nextp=1;
else
link[i].nextp=i+1;//numberingeachnextperson
}
printf(\nThesequenceoutofthecircleis:\n);
for(next=1,count=1;countN;count++)//countuntil12persons
{
i=1;
while(i!=3)//icounts1,2,3
{
do//skiptheoneswhosenumbersarezero
next=link[next].nextp;
while(link[next].number==0);//endofdo
i++;
}
printf(%3d,link[next].number);
link[next].number=0;//indicateoutofcirclealready
do//startfromtheoneswhosenumbersarenotzeronexttime
next=link[next].nextp;
while(link[next].number==0);
}
printf(\n\nThebetrayerofthemis:);
for(i=1;i=N;i++)
if(link[i].number)
printf(%3d\n,link[i].number);
getch();
}
*/
//approachtwousingcycliclist
#defineN13
#defineLENsizeof(structperson)
#includestdio.h
#includeconio.h
#includealloc.h
#includestdlib.h
//structperson//permitstructplacedhere//
//{
//intnumber;
//structperson*next;
//};
voidmain()
{
inti,count;
structperson//orpermitstructplacedherealso//
{
intnumber;
structperson*next;
};
structperson*head,*p1,*p2;
clrscr();
head=p2=NULL;
for(i=1;i=N;i++)
{
p1=(structperson*)malloc(LEN);
p1-number=i;
if(head==NULL)
head=p1;
else
p2-next=p1;
p2=p1;
}
p2-next=head;
printf(\nthesequenceoutofthecircleis:\n);
for(count=1;countN;count++)
{
i=1;
while(i!=3)
{
p1=head;
head=head-next;
i++;
}
p2=head;
printf(%3d,p2-number);
p1-next=head=p2-next;
free(p2);
}
printf(\nThebetrayerofthemis:\n%3d,head-number);
getch();
}
还可以去望麓自卑论坛北京白癜风去哪个医院北京治疗白癜风医院哪个最好