C语言练习代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
int main()
{
int a,b,c1,c2,c3,c4,c5;
scanf("%d",&a);
if(a<10)
printf("1\n");
else if(a<100)
printf("2\n");
else if(a<1000)
printf("3\n");
else if(a<10000)
printf("4\n");
else if(a<100000)
printf("5\n");
else
printf("请输入不超过五位数的整数");
if(a<10)
printf("%d\n",a);
else if(a<100)
{c1=a/10;c2=a%10;
printf("%d %d\n",c1,c2);}
else if(a<1000)
{c1=a/100;c2=a/10%10;c3=a%10;
printf("%d %d %d\n",c1,c2,c3); }
else if(a<10000)
{c1=a/1000;c2=a/100%10;c3=a/10%10;c4=a%10;
printf("%d %d %d %d\n",c1,c2,c3,c4); }
else if(a<100000)
{c1=a/10000;c2=a/1000%10;c3=a/100%10;c4=a/10%10;c5=a%10;
printf("%d %d %d %d %d\n",c1,c2,c3,c4,c5); }
if(a<10)
printf("%d\n",a);
else if(a<100)
b=a/10+a%10*10;
else if(a<1000)
b=a%10*100+a/10%10*10+a/100;
else if(a<10000)
b=a%10*1000+a/10%10*100+a/100%10*10+a/1000;
else
b=a%10*10000+a/10%10*1000+a/100%10*100+a/1000%10*10+a/10000;
printf("%d",b);
return 0;
}
#include
int main()
{
char c1,c2,c3,c4,c5;
scanf("%c%c%c%c%c",&c1,&c2,&c3,&c4,&c5);
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
printf("%c%c%c%c%c",c1,c2,c3,c4,c5);
return 0;
}
#include
int main()
{
float r,h,C1,Sa,Sb,Va,Vb;
float PI=3.14;
scanf("%f %f",&r,&h);
C1=PI*r*2;
Sa=PI*r*r;
Sb=4*PI*r*r;
Va=4*PI*r*r*r/3;
Vb=PI*r*r*h;
printf("C1=%.2f\nSa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f",C1,Sa,Sb,Va,Vb);
return 0;
}
#include
#define LOWER 0
#define UPPER 100
#define step 20
int main()
{
float fahr,celsius;
celsius=UPPER;
while (celsius<=UPPER&&celsius>=LOWER){
fahr=celsius*9/5+32;
printf("%.f\t%.2f\n",celsius,fahr);
celsius =celsius-step;
}
return 0;
}
#include
int main()
{
int a,b,c;
a=1;
while (a<=9){
c=1;
while(c<=9&&a>=c){
b=a*c;
printf("%d*%d=%d\t",c,a,b);
c++;
}
a++;
printf("\n");
}
return 0;
}
#include
int main()
{
int i,j;
for(i=0;i<=3;i++){
for(j=0;j<3-i;j++)
printf(" ");
for(j=2*i;j>=0;j--)
printf("*");
printf("\n");
}
for(i=2;i>=0;i--){
for(j=0;j<3-i;j++)
printf(" ");
for(j=i*2;j>=0;j--)
printf("*");
printf("\n");
}
return 0;
}
#include
int main()
{
int n,a,b,c;
for(n=100;n<1000;n++){
a=n%10;
b=n/10%10;
c=n/100;
if(n==a*a*a+b*b*b+c*c*c)
printf("%d\n",n);
}
return 0;
}
#include
int main()
{
int c,ns,nt,nn;
ns=nt=nn=0;
while((c=getchar())!=EOF){
if(c==' ')
++ns;
else if(c=='\t')
++nt;
else if(c=='\n')
++nn;
}
printf("空格数:%d\n制表符数:%d\n换行符:%d\n",ns,nt,nn);
}
#include
/*将输入复制到输出的程序,
并将其中连续的多个空格用一个空格代替*/
int main()
{
long nc = 0;
int spaceStatus = 0;
int c = 0;
while ((c = getchar()) != EOF)
{
if (c == ' ')
{
if (spaceStatus == 0)
{
spaceStatus = 1;
putchar(c);
}
}
if (c != ' ')
{
spaceStatus = 0;
putchar(c);
}
}
}
#include
/*怎么计算单词数*/
#define IN 1 /*在单词内*/
#define OUT 0 /*在单词外*/
int main()
{
int c,nc,nl,nw,state;
state=OUT;
nl=nw=nc=0;
while((c=getchar())!=EOF){
++nc;
if(c=='\n')
++nl;
if(c==' '||c=='\n'||c=='\t')
state=OUT;
else if(state==OUT){
state=IN;
++nw;
}
}
printf("%d %d %d",nl,nw,nc);
return 0;
}
#include
#define OUT 0
#define IN 1
/*以每行一个单词的形式打印其输入,如输入hello my friend
则输出 hello
my
friend */
int main()
{
int c,state;
state=OUT;
while((c=getchar())!=EOF){
if(c==' '||c=='\n'||c=='\t'){
if(state==OUT){
state=IN;
putchar('\n');
}
}
else{
state=OUT;
putchar(c);
}
}
return 0;
}
#include
int main()
/*统计各个数字·空白符·(包括空白符,制表符,及换行符)
以及其它字符出现的次数*/
{
int c,i,nwhite,nother;
int ndigit[10];
nwhite=nother=0;
for(i=0;i<10;++i)
ndigit[i]=0;
while((c=getchar())!=EOF)
if(c>='0'&&c<='9')
++ndigit[c-'0'];
else if(c==' '||c=='\n'||c=='\t')
++nwhite;
else
++nother;
printf("digits=");
for(i=0;i<10;++i)
printf(" %d",ndigit[i]);
printf(",white space=%d,other=%d\n",nwhite,nother);
return 0;
}
#include
#define N 10
/*对应下标的两个数交换*/
int main()
{
int a[N]={3,5,2,4,7,8,1,9,0,6};
int i,j,temp;
for(i=0,j=N-1;i
a[i]=a[j];
a[j]=temp;
}
for(i=0;i
}
return 0;
}
#include
#define N 3
int main()
{
float a[N][N];
int i,j;
float sum=0.0;
for(i=0;i
for(i=0;i
printf("%.2f",sum);
return 0;
}
#include
#define N 3
#define M 5
int main()
{ int a[N][M]={{1,2,3},{4,5,6}};
int i, j;
for(i=0;i
return 0;
}
#include
int main()
{
int i,j,max,min;
int m[5][5];
int result[5];
/*找到每一行的最大数,然后将最大数中的最小数找到*/
for(i=0,j=0;i<5;i++){
max=-1;
for(j=0;j<5;j++){
scanf("%d",&m[i][j]);
if(m[i][j]>max)
max=m[i][j];
}
result[i]=max;
}
min=1000000000;
for(i=0;i<5;i++){
if(result[i]
printf("%d ",result[i]);
}
printf("\n");
printf("%d",min);
return 0;
}
#include
/*降序,输入一组正整数最后以复数结尾*/
#define N 100
int main()
{
int i,j,temp=0;
int v[N]={0};
for(i=0;i
if(v[i]<0)
break;}
for(i=0;i
for(j=N-1;j>i;j--){
if(v[j]>v[j-1])
{temp=v[j];
v[j]=v[j-1];
v[j-1]=temp;}
}
}
for(j=0;j
printf("%d ",v[j]);
return 0;
}
#include
/*把字符串变为大写并输出*/
int main()
{ int i;
char s[100];
scanf("%s",s);
for(i=0;s[i]!='\0';i++)
s[i]=s[i]-'a'+'A';
printf("%s",s);
return 0;
}
#include
/*各个字母排序并且按照数字大小排序*/
int main()
{
char s[100]={0},m[26]={0};
int v[26]={0};
int i,j,temp,temp2;
scanf("%s",s);
for(i=0;i<26;i++)
m[i]='a'+i;
for(i=0;i<26;i++)
v[i]=0;
for(i=0;s[i]!='#';i++){
if(s[i]>='a'&&s[i]<='z')
v[s[i]-'a']++;}
for(i=0;i<25;i++){
for(j=0;j<25-i;j++){
if(v[j]
v[j]=v[j+1];
v[j+1]=temp;
temp2=m[j];
m[j]=m[j+1];
m[j+1]=temp2;
}
}
}
for(j=0;j<26;j++){
if(v[j]!=0){
printf("%c %d\n",m[j],v[j]);
}
}
return 0;
}
/*工资收税*/
#include
int main()
{
int m[7]={0,1500,4500,9000,35000,55000,80000};
float n[6]={0.03,0.1,0.2,0.25,0.3,0.35},
k[7]={0,1500*0.03,3000*0.1,4500*0.2,26000*0.25,20000*0.3,25000*0.35};
int i,j,income;
float s=0,out=0;
scanf("%d",&income);
if(income-3500<=0){
out=income;
printf("%.0f",out);
}
else if(income-3500>80000){
for(j=0;j<7;j++){
s+=k[j];
}
out=income-s;
printf("%.0f",out);
}
else{
for(i=0;i<7;i++){
if(income-3500>m[i]&&income-3500<=m[i+1]==1)
break;
}
for(j=0;js+=k[j];}
out=income-s-(income-3500-m[i])*n[i];
printf("%.0f",out);
}
return 0;
}
#include
/*输入几组数据,比较大小实训第一题*/
main()
{
int box[100][2],i,j,count;
scanf("%d",&count);
for(i=0;i
for(j=0;j<2;j++)
{
scanf("%d",&box[i][j]);
}
}
for(i=0;i
for(j=0;j<2;j++)
{
if(box[i][j]
printf("Smaller\n");
break;
}
else if(box[i][j]>box[i][j+1])
{
printf("Bigger\n");
break;
}
else
{
printf("Equal\n");
break;
}
}
}
return 0;
}
#include
/*斐波那契数列*/
int main()
{
int i,n,f[46];
scanf("%d",&n);
for(i=0;i<46;i++){
f[0]=0;
f[1]=1;
f[i]=f[i-1]+f[i-2];
}
printf("%d",f[n]);
return 0;
}
#include
/*第n次落地*/
int main()
{
float m,n,j,k;
int i;
scanf("%f %f",&m,&n);
k=m;
for(i=0;i
}
printf("%.2f %.2f",m,j*2-k);
return 0;
}
#include
#include
/*字符串倒逆排序*/
int main()
{
char s[100];
int i,temp,n;
scanf("%s",s);
n=strlen(s);/*计算字符串长度的函数*/
for(i=0;i
s[i]=s[n-1-i];
s[n-1-i]=temp;
}
printf("%s",s);
return 0;
}
#include
/*字符三角*/
int main()
{
char s;
int i,j,k;
scanf("%c",&s);
for(i=0;i<7;i++){
for(j=6-i;j>0;j--)
printf(" ");
for(k=0;k<2*i+1;k++)
printf("%c",s);
printf("\n");
}
return 0;
}
#include
/*寻找幸运数*/
int main()
{
int m[999][3];
int i,j,k;
for(i=0;;i++){
for(j=0;j<3;j++){
scanf("%d",&m[i][j]);
}k++;
j=0;
if(m[i][j]==-1&&m[i][j+1]==-1&&m[i][j+2]==-1)
break;}
for(i=0;i
if(m[i][j]<168){
printf("CRASH %d",m[i][j]);
break;
}
else if(m[i][j+1]<168){
printf("CRASH %d",m[i][j+1]);
break;
}
else if(m[i][j+2]<168){
printf("CRASH %d",m[i][j+2]);
break;
}
else{
printf("NO CRASH");
break;
}
}
printf("\n");
}
return 0;
}
#include
/*等差数列*/
int main()
{
long long a,b,c,d;
int flag=1;
while(flag!=-1){
scanf("%lld %lld %lld",&a,&b,&c);
if(a==0&&b==0&&c==0){
flag=-1;}
else{
d=(b-a)/c+1;
printf("%lld\n",(a+b)*d/2); }
}
return 0;
}
#include
/*字符转换*/
# define EOF -1
int main()
{
char s;
while((s=getchar())!=EOF){
if(s==EOF)
break;
else if(s>='a'&&s<='z'){
s=s-'a'+'A';
printf("%c",s);
}
else if(s>='A'&&s<='Z'){
s=s-'A'+'a';
printf("%c",s);
}
else{
s=s;
printf("%c",s);
}
}
return 0;
}
#include
#include
/*判断数字*/
int main()
{
char c[1000];
int i,k;
while(gets(c)!=NULL){
for(i=0;i
k=1;}
else {
k=0;
break;}
}
if(k==1)
printf("Yes\n");
else if(k==0)
printf("No\n");
}
return 0;
}
#include
/*完数一个数如果恰好等于它的因子之和6=1+2+3,6=1*2*3*/
int main()
{
int n,i,sum,N;
scanf("%d",&
N);
for(n=2;n
for(i=1;i
sum+=i;
}
}
if(sum==n){
printf("%d its factors are ",n);
for(i=1;i
printf("%d ",i);
}
}
printf("\n");
}
}
return 0;
#include
/*分数序列求和*/
int main()
{
float a[100]={0.0},b[100]={0},n,sum=0,k[100]={0};
int i,j;
scanf("%f",&n);
for(i=0;i
b[0]=2;
a[1]=2;
b[1]=3;
if(i>=2){
a[i]=a[i-1]+a[i-2];
b[i]=b[i-1]+b[i-2];
}
k[i]=b[i]/a[i];
sum+=k[i]; }
printf("%.2f ",sum);
return 0;
}
#include
/*h猴子吃桃*/
int main()
{
int n,i,sum=1;
scanf("%d",&n);
for(i=1;i
sum=(sum+1)*2;
}
printf("%d",sum);
return 0;
}
#include
/*素数判断*/
int main()
{
int i,n;
scanf("%d",&n);
if(n%2==0||n%3==0)
printf("not prime");
else
printf("prime");
return 0;
}
#include
/*求平均数*/
int main()
{
int a,i,n=0;
double s=0;
while (scanf("%d",&a)!=EOF){
for(i=0,a<=1000000;i<1000;i++){
n++;
s+=a;
} }
printf("%.2lf",s/n);
return 0;
}
#include
/*矩阵转置*/
int main()
{
int i,j,m[3][3],temp;
for(i=0;i<3;i++){
for(j=0;j<3;j++)
scanf("%d",&m[i][j]);
}
for(i=0;i<3;i++){
for(j=0;j<3;j++){
temp=m[j][i];
printf("%d ",temp);
}
printf("\n");
}
return 0;
}
#include
/*插队问题*/
int main()
{
int i,j,temp,m[10];
for(i=0;i<10;i++){
scanf("%d",&m[i]);
}
for(i=0;i<9;i++){
for(j=9;j>i;j--){
if(m[j-1]>m[j]){
temp=m[j];
m[j]=m[j-1];
m[j-1]=temp;
}
}
}
for(j=0;j<10;j++){
printf("%d\n",m[j]);
}
return 0;
}
#include
/*求级数的第n项*/
int main()
{
int f[999],n,i;
while(scanf("%d",&n)&&n!=0){
f[1]=1;
f[2]=2;
for(i=3;i<=n;i++){
f[i]=3*f[i-1]+5*f[i-2];
}
printf("%d\n",f[n]);
}
return 0;
}
#include
/*base为基数,n为阶数*/
void c(float base,int n ){
int j;
float s=1;
for(j=0;j
}
printf("%.2f\n",s);
}
int main()
{
int k,i,j,n;
float base,s=1;
scanf("%d",&k);
for(i=0;i
c(base,n);
}
return 0;
}
#include
/*累加,输出从m加到n的和*/
void sum(int m,int n){
int s=0,j;
for(j=m;j<=n;j++){
s+=j;
}
printf("%d",s);
}
int main()
{
int m,n,i,k;
scanf("%d",&k);
for(i=0;i
sum(
m,n);}
return 0;
}
#include
/*给定年月日的日期,就知道这一天是这一年的第几天*/
void c(int year,int month,int day){
int i,a;
char k[2][13] = {
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
a=year%4==0&&year%100!=0||year%400==0;
for (i = 1; i < month; i++){
day += k[a][i];
}
printf("%d",day);
}
int main(){
int year,month,day;
scanf("%d%d%d",&year,&month,&day);
c(year,month,day);
return 0;
}
#include
#define N 100
/*工资排序*/
int main()
{
struct worker{
char name[20];
int dailysalary;
int days;
int allsalary;
};
struct worker a[N],temp;
char s;
int i,j,m;
scanf("%d",&m);
for(i=0;i
a[i].allsalary=a[i].dailysalary*a[i].days;
}
for(i=0;i
if(a[j].allsalary>a[j-1].allsalary){
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
for(i=0;i
}
return 0;
}
#include
#define N 100
/*分解质因数*/
int main()
{
int a[N],m,i,j,t;
scanf("%d",&m);
for(i=0;i
for(j=0;j
printf("%d=",a[j]);
for(i=2;i<=t;i++){
while(t!=i){
if(t%i==0){
printf("%d*",i);
t=t/i;}
else break; } }
printf("%d\n",t);
}
return 0;
}
#include
/*字母排序*/
#define N 100
int main()
{
struct letter{
char letters;
int counts,i,j;
};
struct letter a[N],temp;
int i,j;
char s;
for(i=0;i
a[i].counts=0;
}
while((s=getchar())!='#'){
if(s>='a'&&s<='z'){
a[s-'a'].counts++;
}
}
for(i=0;i
if(a[j].counts>a[j-1].counts){
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
for(i=0;i
printf("%c(%d) ",a[i].letters,a[i].counts);
}
return 0;
}
#include
#include
/*符号代替*/
int main()
{
char s[100];
int n,i;
gets(s);
n=strlen(s);
for(i=0;i
case'(':s[i]='[';break;
case')':s[i]=']';break;
case'{':s[i]='<';break;
case'}':s[i]='>';break;
case'@':s[i]='#';break;
case'*':s[i]='#';break;
case'&':s[i]='#';break;
}
}
printf("%s",s);
return 0;
}
#include
/*选择排序*/
int main()
{
int a[10]={2,5,78,36,11,48,77,59,66,10};
int i,j,min,temp;
for(i=0;i<10-1;i++){
min=i;
for(j=i+1;j<10;j++)
if(a[min]>a[j])
min=j;
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
for(i=0;i<10;i++){
printf(
"%d ",a[i]);
}
}