C例题2.docx
- 文档编号:27641866
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:18
- 大小:17.67KB
C例题2.docx
《C例题2.docx》由会员分享,可在线阅读,更多相关《C例题2.docx(18页珍藏版)》请在冰豆网上搜索。
C例题2
例5.2用while语句实现:
从键盘输入n个数,求其和。
#include
voidmain()
{
inti,n;
floatk,s;
s=0;
i=1;
printf(“inputn:
”);
scanf(“%d”,n);
while(i<=n)
{
scanf(“%f”,&k);
s=s+k;
i++;
}
printf(“\ntheansweris%f\n”,s);
}
例5.2从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。
#include
#include
voidmain()
{
charch;
inti=0;
puts(“inputasentence,thenpress
while((ch=getch())!
=’\r’)
{
putchar(ch);
i++;
}
printf(“\nthelengthis%d\n”,i);
}
例5.3用do-while语句重做例5.1
#include
voidmain()
{
inti=1,n;
floatk,s=0;
printf(“inputn:
”);
scanf(“%d”,&n);
do
{
scanf(“%f”,&k);
i++;
s=s+k;
}
while(i<=n);
printf(“\nsumis%f\n”,s);
}
例5.4用for语句重写例5.1。
#include
voidmain()
{
inti,n;
floatk,s=0;
printf(“inputn:
”);
scanf(“%d”,&n);
for(i=1;i<=n;i++)
{
scanf(“%f”,&k);
s=s+k;
}
printf(“sumis%f\n”,s);
}
例5.5计算1至50中是7的倍数的数值之和。
#include
voidmain()
{
ints=0,i;
for(i=1;i<=50;i++)
{
if(i%7==0)
s=s+i;
}
printf(“sumis:
%d”,s);
}
例5.6输出九九乘法表。
#include
voidmain()
{
inti,j,k,s;
for(k=1;k<=9;k++)
printf(“%d”,k);
printf(“\n-------------------------------------------\n“);
for(i=1;i<=9;i++)
for(j=1;j<=9;j++)
printf(j%9==0?
”%4d\n”:
”%d”,i*j);
}
例5.7计算r=1到r=10时的圆面积。
直到面积大于100为止。
#include
#definePI3.1415926
voidmain()
{
intr;
floats;
for(r=1;r<=10;r++)
{
s=PI*r*r;
if(s>100)
break;
printf(“r:
%dtheareais%.2f\n”,r,s);
}
}
例5.8把100到150之间不能被3整除的数输出,要求一行输出10个数。
#include
voidmain()
{
inti,j=0;
for(i=100;i<=150;i++)
{
if(i%3!
=0)
{
printf(“%4d”,i);
j++;
}
if(j%10==0)
printf(“\n”);
}
}
OR:
#include
voidmain()
{
intn,i=0;
for(n=100;n<=150;n++)
{
if(n%3==0)
continue;
printf(“%4d”,n);
i++;
if(i%10==0)
printf(“\n”);
}
}
例5.9用goto语句和if语句构成循环,求∑1~100
#include
voidmain()
{
inti=1,s=0;
loop:
if(i<=100)
{
s+=i;
i++;
gotoloop;
}
printf(“s=%d”,s);
}
例5.10用PI/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一项的绝对值小于e-6为止。
#include
#include
voidmain()
{
intn=1,i=1;
floats=0;
while(fabs(n)>=1e-6)
{
s=s+i/n;
i=-i;
n=n+2;
}
printf(“π=%f\n”,4*s);
}
例5.11从键盘输入一个大于二的整数,判断其是不是素数。
#include
#include
voidmain()
{
intn,i,k;
printf(“输入一个大于二的整数:
”);
scanf(“%d”,&n);
k=sqrt((double)n);
for(i=2;i<=k;i++)
{
if(n%i==0)
printf(“\n不是素数\n);
break;
if(i==k)
printf(“\n是素数\n”);
}
}
OR:
#include
#include
voidmain()
{
intn,i,k,flag;
do
{
printf(“键入一个整数:
”);
scanf(“%d”,&n);
}
while(n<=2);
flag=1;
k=sqrt((double)n);
for(i=2;i<=k;i++)
{
if(n%i==0)
flag=0;
break;
}
if(flag)
printf(“是素数\n”);
elseprintf(“不是素数\n”);
}
例5.12用牛顿迭代法求方程2x³-4x²+3x-6=0的根,要求误差小于e-5
#include
#include
voidmain()
{
floatx,x1,f,f1;
printf(“inputtheapproach:
”);
scanf(“%f”,&x);
do
{
x1=x;
f=2*x1*x1*x1-4x1*x1+3*x1-6;
f1=6*x1*x1-8*x1+3;
x=x1-f/f1;
}
while(fabs(x1-x)>=1e-5);
printf(“root=%f”,x);
}
例5.13从键盘输入四个九以内的数字字符,将其转化为四位十进制数后显示出来。
#include
voidmain()
{
charch;
ints=0,i;
printf(“inputchar:
”);
for(i=0;i<4;i++)
{
getch(ch);
if(‘ch’>’9’||’ch’<’0’)
break;
s=s+ch-‘0’;
}
printf(“%d”,s);
}
例5.14Fibonacci数列,前几个数为0,1,1,2,3,5,~,其规律是F1=0,F2=1,Fn=Fn-1+Fn-2,编程求此数列的前四十个数。
#include
voidmain()
{
inti;
longinta,b;
a=0;b=1;
for(i=1;i<21;i++)
{
printf(“%9ld%9ld”,a,b);
a=a+b;
b=b+a;
if(i%2==0)
printf(“\n”);
}
}
例6.1输入某个同学的五门成绩,要求按与输入顺序相反的顺序输出。
#include
voidmain()
{
floats1,s2,s3,s4,s5;
printf(“enterfivescores:
”);
scanf(“%f,%f,%f,%f,%f”,&s1,&s2,&s3,&s4,&s5);
printf(“%f”,s1);
~
~
OR:
#include
voidmain()
{
inti;
floats[5];
printf(“enterfivescores:
”);
for(i=1;i<=5;i++)
scanf(“%f”,&s[i]);
printf(“thescoresinreverse
for(i=5;i>=1;i--)
printf(“%f”,s[i]);
}
例6.2用数组来处理Fibonacci数列问题。
#include
voidmain()
{
inti;
longints[20];
s[0]=0;
s[1]=1;
printf(“%9ld%9ld”,s[0],s[1]);
for(i=2;i<=19;i++)
{
s[i]=s[i-1]+s[i-2];
printf(“%9ld”,s[i]);
if((i+1)%4==0)
printf(“\n”);
}
}
例6.3用冒泡法对给定的15个整数进行递增排序。
#defineN15
#include
voidmain()
{
inti,j,t,s[15];
printf(“input15numbers:
”);
for(i=0;i<=14;i++)
scanf(“%d”,&s[i]);
for(j=1;j<=14;j++)
for(i=0;i { if(s[i]>s[i+1]) t=s[i]; s[i]=s[i+1]; s[i+1]=t; } printf(“排序后: ”); for(i=0;i<15;i++) printf(“%d”,s[i]); } 例6.4从键盘为一个N×N的整型数组输入数据,并将每一行的最小值显示出来。 #defineN6 #include voidmain() { ints[N][N],a[N],i,j; printf(“inputthenumbers: \n”); for(i=0;i for(j=0;j scanf(“%d”,&s[i][j]); for(i=0;i {a[i]=s[i][0]; for(j=1;j if(a[i]>s[i][j]) a[i]=s[i][j]; } printf(“Minis: ”); for(i=0;i printf(“%d”,a[i]); } 例6.5统计某一字符串中的字符数,不包括结束符‘\0’. #include voidmain() { chara[]=(“string”); inti; for(i=0;;i++) {if(a[i]==’\0’) printf(“length=%d\n”,i); break; } } 例6.6有三个字符串,要求找出其中最大者。 #include #include voidmain() { charstring[20]; charstr[3][20]; inti; for(i=0;i<3;i++) gets(str[i]); if(strcmp(str[0],str[1])>0) strcpy(string[30],str[0]); elsestrcpy(string[30],str[1]); if(strmp(strng[30],str[2])<0) strcpy(string[30],str[2]); puts(string[30]);OR: printf(“\nthelongestis%s\n”,string); } 例6.7用选择排序法对数组中的N个整数排序,按从小到大的顺序输出。 #defineN10 #include voidmain() { inta[N],i,j,t; printf(“inputthenumbers: ”); for(i=0;i scanf(“%d”,&a[i]); for(i=1;i for(j=0;j if(a[j]>a[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t;} printf(“\nthenumbersinreserveorder: \n”); for(i=0;i printf(“%d”,a[i]); } 选择排序法: #defineN10 #include voidmain() { inta[N],t,i,j,k; printf(“input%dnumber: \n”,N);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 例题