C程序自编.docx
《C程序自编.docx》由会员分享,可在线阅读,更多相关《C程序自编.docx(9页珍藏版)》请在冰豆网上搜索。
![C程序自编.docx](https://file1.bdocx.com/fileroot1/2022-12/16/50818d18-14c3-465e-832d-485516c98f04/50818d18-14c3-465e-832d-485516c98f041.gif)
C程序自编
1.双星号(for循环的嵌套)
#include
main()
{inti,j;
for(i=1;i<=3;i++)
{for(j=1;j<=4-i;j++)
printf("");
for(j=1;j<=2*i-1;j++)
printf("*");
for(j=1;j<=7-2*i;j++)
printf("");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");}
for(i=1;i<=13;i++)
printf("*");
printf("\n");
for(i=1;i<=3;i++)
{for(j=1;j<=i;j++)
printf("");
for(j=1;j<=7-2*i;j++)
printf("*");
for(j=1;j<=2*i-1;j++)
printf("");
for(j=1;j<=7-2*i;j++)
printf("*");
printf("\n");}}
2.求2000--------------------~3000间的闰年,每十个一行输出
#include
main()
{intyear,n;
n=0;
for(year=2000;year<=3000;year++)
{if(year%4==0&&year%100!
=0||year%400==0)
{printf("%d,",year);
n=n+1;
if(n%10==0)
printf("\n");}}}
3.求1~100的和
#include
main()
{inti,s;
s=0;
for(i=1;i<=100;i++)
s=s+i;
printf(“s=%d\n”,s);}
4.求1+(1+2)+(1+2+3)+(1+2+3+4)……前n项和
#include
main()
{ints,i,j,n;
s=0;j=0;
scanf(“%d”,&n);
for(i=1;i<=n;i++)
{j=j+i;
s=s+j;}
printf(“s=%d\n”,s);}
5.输入三个数,输出它们的最大值(自定义函数并调用)
#include
intmax(intx,inty,intz);
main()
{inta,b,c,d;
scanf(“%d%d%d”,&a,&b,&c);
d=max(a,b,c);
printf(“d=%d\n”,d);}
intmax(intx,inty,intz)
{inth;
h=x;
if(h<=y)h=y;
if(h<=z)h=z;
returnh;}
6.对账文件(日记账)
#include
main()
{doublei,s,J,D;
J=0.0;
D=0.0;
scanf("%lf%lf",&i,&s);
while(i!
=0)
{s=s+i;
printf("余额:
%.2f\n",s);
if(i>0)J=J+i;
elseD=D+i;
scanf("%lf",&i);}
printf("J=%.2f,D=%.2f\n",J,D);
}
7.100元买百羊,小羊1元3只,中羊10元3只,大羊5元1只
#include
main()
{inta,b,c;
for(a=0;a<=20;a++)
for(b=0;b<=33;b++)
for(c=0;c<=90;c++)
if((a+b+c==100)&&(15*a+10*b+c==300))
printf("%d,%d,%d\n",a,b,c);}
9.goto语句(与循环语句有相同的效果)
#include
main()
{inta;
cong:
scanf("%d",&a);
if(a>=7)
printf("%d\n",a);
gotocong;}
10.输出26个大写字母与相应的ASCII码值
#include
main()
{charch;inti;
for(i=0;i<26;i++)
{ch=i+65;
if(i%2==0)printf("\n");
printf("c=%c ASCII=%d",ch,ch);
}putchar('\n');}
11.利用指针比较两个数大小,并输出较小数。
#include
main()
{inta,b,min,*pa,*pb,*pmin;
pa=&a;pb=&b;pmin=&min;
scanf("%d%d",pa,pb);
*pmin=*pa;
if(*pmin>*pb)*pmin=*pb;
printf("%d\n",min);}
12. 编写程序,定义一个15个元素的数组,并编写函数分别完成以下操作:
1.调用库函数中的随机函数给数组元素赋0—49的随机数;2.输出数组元素中的值;3.按顺序对每3个数求一个和数,并传回主函数;4,。
最后输出和值。
#include
#include
#defineM15
#defineN3
voidgetrand(int*,int);
voidgetave(int*,int*,int);
voidpriarr(int*,int);
main()
{intx-,w[M/N]={0};
getrand(x,M);
printf("number:
\n");
priarr(x,M);
getave(x,w,M);
printf("number:
\n");
priarr(w,M/N);}
voidgetrand(int*a,intn)
{inti;
for(i=0;ivoidgetave(int*a,int*b,intn)
{inti,j,sum;
for(sum=0,i=0,j=0;i<=n;i++)
{sum+=a[i];if((i+1)%3==0)
{b[j]=sum;sum=0;j++;}}}
voidpriarr(int*a,intn)
{inti;for(i=0;i{printf("%5d",a[i]);
if((i+1)%5==0)printf("\n");}
printf("\n");}
13.编写函数,要求如(输入**AD*HH**YY***输出ADHHYY***)主函数部分不能动。
#include
voidfun(char*a,char*b)
{inti,j=0;
for(i=0;a+i<=b;i++)
if(a[i]!
='*')
{a[j]=a[i];j++;}
for(;a[i]=='*';i++)
{a[j]=a[i];j++;}
for(;a[i]=='\0';i++){a[j]='\0';j++;}}
voidmain()
{chars[81],*t;
printf("Enterastring:
\n");
gets(s);t=s;
while(*t)t++;
t--;
while(*t=='*')t--;
fun(s,t);
printf("Thestringafterdeleted:
\n");puts(s);}
14.调用随机函数为5阶方阵赋100以内的整数,输出该矩阵,然后输出它的转置矩阵。
#include
#include
#defineM5
voidfun(int(*a)-,int);
voidman(int(*a)-,int);
voidqan(int(*a)-,int);
main()
{inta,n;
n=M;
printf("%dnumber:
\n",n);
fun(a,n);
qan(a,n);
printf("%dnumber:
\n",n);
man(a,n);
qan(a,n);}
voidfun(int(*a)-,intn)
{intk,j;
for(k=0;kfor(j=0;ja[k][j]=rand()%100;}
voidman(int(*a)-,intn)
{intk,j,t;
for(k=0;kfor(j=0;j{t=a[k][j];a[k][j]=a[j][k];a[j][k]=t;}}
voidqan(int(*a),intn)
{intk,j,i=0;
for(k=0;kfor(j=0;j{printf("%5d",a[k][j]);i++;
if(i%M==0)printf("\n");}printf("\n");}
15.自定义函数比较字符串大小
#include
scomp(char*s1,char*s2)
{inti=0;
while(s1[i]==s2[i]&&s1[i])i++;
return(s1[i]-s2[i]);}
main()
{charstr1[]="ABC",str2[10];
gets(str2);
if(scomp(str1,str2)>0)printf("str1>str2\n");
elseif(scomp(str1,str2)<0)printf("str1elseprintf("str1=str2\n");}
16.输出九九乘法表(二维数组的运用)
#include
#defineM9
voidfun(int(*a)-);
main()
{inta-,i;
printf("**AMULTIPLICATIONTABLE**");
printf("\n ");
for(i=1;i<=M;i++)printf(" (%d)",i);
printf("\n-------------------------------------------------\n");
fun(a);
printf("\n-------------------------------------------------\n");}
voidfun(int(*a)-)
{inti,j;
for(i=0;ifor(j=0;ja[i][j]=(i+1)*(j+1);
for(i=0;ifor(j=0;j{if(j==0)printf("(%d)",i+1);
printf("%5d",a[i][j]);
if(j==M-1)printf("\n");}}
17.编写程序输出杨辉三角形(7阶)*注意if后的括号中的是==而不是=
#include
#defineM10
voidfun(int(*a)-,intn)
{inti,j;
for(i=0;i{a[i][i]=1;a[i][0]=1;}
for(i=2;ifor(j=1;j
a[i][j]=a[i-1][j-1]+a[i-1][j];}
voidman(inta[]-,intn)
{inti,j;
printf("杨辉三角形:
\n");
for(i=0;ifor(j=0;j<=i;j++)
{printf("%3d",a[i][j]);
if(i==j)printf("\n");}
printf("\n");}
main()
{inta-,n=7;
fun(a,n);
man(a,n);}