1.編程實現對鍵盤輸入的英文名句子進行加密。用加密方法為,當內容為英文字母時其在26字母中的其後三個字母
代替該字母,若為其它字元時不變。
int _tmain(int argc, _TCHAR* argv[])
{
printf("Please input your words:/n");
char str[100];
char c;
gets(str);
for(int i=0;i<100;i++)
{
c=str[i];
if(c>='a'&&c<='z')
putchar((c-'a'+3)%26+'a');
else if(c>='A'&&c<='Z')
putchar((c-'A'+3)%26+'A');
}
return 0;
}
2.編程實現將任意的十進位整數轉換成R進位數(R在2-16之間)。
int _tmain(int argc, _TCHAR* argv[])
{
int n,m;
int i=0;
int temp[100];
printf("Please input your number:/n");
scanf("%d",&n);
printf("Please input your base number:/n");
scanf("%d",&m);
while(n!=0)
{
temp[i]=n%m;
n=n/m;
i++;
}
while(i--!=0)
printf("%d",temp[i]);
return 0;
}
3.從鍵盤輸入一指定金額(以元為單位,如345.78),然後顯示支付該金額的各種面額人民幣數量,要求顯示100元
、50元、10元、5元、2元、1元、1角、5分、1分各多少張。
int type[9]={10000,5000,1000,500,200,100,10,5,1};
printf("Please input your money:/n");
float n;
scanf("%f",&n);
int i=0;
float m=n*100;
int number=(int)m;
printf("%d",number);
while(number!=0)
{
printf("%d ",number);
printf("the count of %f is %d/n",((float)type[i])/100,number/type[i]);
number%=type[i++];
}
return 0;
出現的問題是:當我把float m=n*100;int number=(int)m;換成int number=(int)(n*100)的時候,為什麼21.4它總
是變成2139,而不是2140呢?也就是它把21.4改變成21.39差0.01呢?
4、隨機產生20個[10,50]的正整數存放到數組中,並求數組中的所有元素最大值、最小值、平均值及各元素之和。
#include<time.h>
#include<stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
int a[20];
int i,min=0,max=0,sum=0;
srand((int)time(0));
for(i=0;i<20;i++)
{
a[i]=rand()%41+10;
sum+=a[i];
if(min>a[i])min=a[i];
if(max<a[i])max=a[i];
}
printf("min=%d max=%d sum=%d ave=%f ",min,max,sum,float(sum)/20);
return 0;
}
5.編程在一個已知的字串中尋找最長單詞,假定字串中只含字母和空格,空格用來分隔不同單詞。
#include<stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
char str[100],save[100];
int start=0,max=0,heigh=0;
int i=0;
printf("Please input your numbers:/n");
gets(str);
while(str[i]!='/0')
{
if(str[i]==' ')
{
if(max<heigh)
{
max=heigh;
start=i-heigh;
}
heigh=0;
}
else
heigh++;
i++;
}
if(max<=heigh)
max=heigh; //容易忘掉,切忌
printf("max=%d ",max);
while(max-->0)
{
printf("%c",str[start++]);
}
return 0;
}
6.任何一個自然數m的立方均可寫成m個連續奇數之和。例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
#include<stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
int n,j;
int sum=0,start=0;
scanf("%d",&n);
for(j=0;j<n;j++)
sum+=j;
start=sum*2+1;
for(j=0;j<n;j++)
printf("%d ",start+j*2);
return 0;
}
7.知abc+cba=1333,其中a,b,c均為一位元,編程求出滿足條件的a,b,c所有組合。
#include<stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c;
for(a=4;a<9;a++)
{
c=13-a;
if((c+1*10+a*100+a+1*10+c*100)==1333)
printf("a=%d,b=1,c=%d/n",a,c);
}
return 0;
}
8.編製一個完成兩個數的四則運算程式。如:使用者輸入34+56則輸出結果90.00。要求運算結果保留兩位小數,使用者輸入時一次將兩個數和操作符輸入。
#include<stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
float a,b;
char mark;
scanf("%f%c%f",&a,&mark,&b);
switch(mark)
{
case '+':printf("%.2f",a+b);break;
case '-':printf("%.2f",a-b);break;
case '*':printf("%.2f",a*b);break;
case '/':printf("%.2f",a/b);break;
}
return 0;
}
9.耶穌有13個門徒,其中有一個就是出賣耶穌的叛徒,請用排除法找出這位叛徒:13人圍坐一圈,從第一個開始報號:1,2,3,1,2,3……,凡是報到“3”就退出圈子,最後留在圈內的人就是出賣耶穌的叛徒,請找出它原來的序號。
int _tmain(int argc, _TCHAR* argv[])
{
int people[14]={0};
int i,j,now=1;
for(i=1;i<13;i++)
{
j=1;
while(j!=3){
if(people[now]==0)
j++;
if(now>13)
now=1;
else
now++;
}
people[now]=1;
printf("%d ",now);
j=0;
}
return 0;
}
printf("a=%d/n", a); /*結果輸出十進位整數a=1234*/
printf("a=%6d/n", a); /*結果輸出6位十進位數a= 1234*/
printf("a=%06d/n", a); /*結果輸出6位十進位數a=001234*/
printf("a=%2d/n", a); /*a超過2位, 按實際值輸出a=1234*/
printf("*i=%4d/n", *i); /*輸出4位十進位整數*i= 12*/
printf("*i=%-4d/n", *i); /*輸出靠左對齊4位十進位整數*i=12*/
printf("i=%p/n", i); /*輸出地址i=06E4*/
printf("f=%f/n", f); /*輸出浮點數f=3.141593*/
printf("f=6.4f/n", f); /*輸出6位其中小數點後4位的浮點數
f=3.1416*/
printf("x=%lf/n", x); /*輸出長浮點數x=0.123457*/
printf("x=%18.16lf/n", x);/*輸出18位其中小數點後16位的長浮點數x=0.1234567898765432*/
printf("c=%c/n", c); /*輸出字元c=A*/
printf("c=%x/n", c); /*輸出字元的ASCII碼值c=41*/
printf("s[]=%s/n", s); /*輸出數組字串s[]=Hello, Comrade*/
printf("s[]=%6.9s/n", s);/*輸出最多9個字元的字串s[]=Hello, Co*/
printf("s=%p/n", s); /*輸出數組字串首字元地址s=FFBE*/
printf("*p=%s/n", p); /* 輸出指標字串p=How do you do*/
printf("p=%p/n", p); /*輸出指標的值p=0194*/
程式在VS2005全部運行成功,所有的程式並沒有加#include "stdafx.h"標頭檔,編程過少故此練習。關於數組方面
並沒有寫出溢出處理,因為省事。
希望看題的人至少提出幾條意見,最好是能簡化程式,比我的程式簡單請您一定寫出,My Code品質並不高,所以一定提出點意見。瞧不起的小程式,原來編起來卻一褲衩毛病。。。