C例题2.docx

上传人:b****7 文档编号:15338187 上传时间:2023-07-03 格式:DOCX 页数:18 大小:17.67KB
下载 相关 举报
C例题2.docx_第1页
第1页 / 共18页
C例题2.docx_第2页
第2页 / 共18页
C例题2.docx_第3页
第3页 / 共18页
C例题2.docx_第4页
第4页 / 共18页
C例题2.docx_第5页
第5页 / 共18页
C例题2.docx_第6页
第6页 / 共18页
C例题2.docx_第7页
第7页 / 共18页
C例题2.docx_第8页
第8页 / 共18页
C例题2.docx_第9页
第9页 / 共18页
C例题2.docx_第10页
第10页 / 共18页
C例题2.docx_第11页
第11页 / 共18页
C例题2.docx_第12页
第12页 / 共18页
C例题2.docx_第13页
第13页 / 共18页
C例题2.docx_第14页
第14页 / 共18页
C例题2.docx_第15页
第15页 / 共18页
C例题2.docx_第16页
第16页 / 共18页
C例题2.docx_第17页
第17页 / 共18页
C例题2.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C例题2.docx

《C例题2.docx》由会员分享,可在线阅读,更多相关《C例题2.docx(18页珍藏版)》请在冰点文库上搜索。

C例题2.docx

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\n”);

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);

for(i=0;i

scanf(“%d”,&a[i]);

for(i=0;i

{k=i;

for(j=i+1;j

if(a[j]

k=j;

t=a[k];

a[k]=a[i];

a[i]=t;

}

printf(“\nthesortednumbers:

”);

for(i=0;i

printf(“%d”,a[i]);

}

例6.8将数组a的内容逆置重放,要求不得另外开辟数组,只能借助于一个临时存储单元。

#defineN8

#include

voidmain()

{

inta[N],i,t;

printf(“input%dnumber:

\n”,N);

for(i=0;i

scanf(“%d”,&a[i]);

for(i=0;i<=N/2-1;i++)

{t=a[i];a[i]=a[N-i-1];a[N-i-1]=t;}

printf(“\nthesortednumbersis:

\n”);

for(i=0;i

printf(“%d”,a[i]);

}

例6.9将字符串s转换成相应的双精度浮点数。

#include

voidmain()

{

chars[8];

doubleval,power,number;

inti,sign;

printf(“inputastringofnumber:

\n”);

gets(s);

i=0;

sign=s[i++]==’-‘?

-1:

1;

for(val=0;’0’

val=val+s[i]*10;val=val*10+s[i]-‘0’;

i++;

for(power=1;’0’<=s[i]&&s[i]<=’9’;i++)

{

val=val+s[i]*10;

power*=10;

}

number=val*sign/power;

printf(“\nnumber=%f\n”,number);

}

例6.10输入一个由若干单词组成的文本行(最多80个字符),每个单词之间用若干个空格隔开,统计此文本中单词的个数。

#include

#include

voidmain()

{

inti=0,k=0;

chara[80],prec,nowc;

printf(“inputatextline:

”);

gets(a[80]);

prec=’‘;

while(a[i]!

=’\0’)

{

nowc=a[i];

if(nowc!

=’\0’&&prec==’\0’)k++;

i++;

}

printf(“\nthenumberofwords:

%d”,k);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2