西工大noj答案完整版

发布时间:2018-06-26 13:27:30   来源:文档文库   
字号:

西北工业大学POJ答案

绝对是史上最全版(不止100题哦……按首字母排序

1.1“的传奇

2.A+B

3.A+B

4.AB

5.ACKERMAN

6.Arithmetic Progressions

7.Bee

8.Checksum algorithm

9.Coin Test

10.Dexter need help

11.Double

12.Easy problem

13.Favorite number

14.Graveyard

15.Hailstone

16.Hanoi

17.Houseboat

18.Music Composer

19.Redistribute wealth

20.Road trip

21.Scoring

22.Specialized Numbers

23.Sticks

24.Sum of Consecutive

25.Symmetric Sort

26.The Clock

27.The Ratio of gainers to losers

28.VOL大学乒乓球比赛

29.毕业设计论文打印

30.边沿与内芯的差

31.不会吧,又是A+B

32.不屈的小蜗

33.操场训练

34.插入链表节点

35.插入排序

36.插入字符

37.成绩表计算

38.成绩转换

39.出租车费

40.除法

41.创建与遍历职工链表

42.大数乘法

43.大数除法

44.大数加法

45.单词频次

46.迭代求根

47.多项式的猜想

48.二分查找

49.二分求根

50.发工资的日子

51.方差

52.分离单词

53.分数拆分

54.分数化小数

55.分数加减法

56.复数

57.高低交换

58.公园喷水器

59.韩信点兵

60.行程编码压缩算法

61.合并字符串

62.猴子分桃

63.火车站

64.获取指定二进制位

65.积分计算

66.级数和

67.计算A+B

68.计算PI

69.计算π

70.计算成绩

71.计算完全数

72.检测位图长宽

73.检查图像文件格式

74.奖金发放

75.阶乘合计

76.解不等式

77.精确幂乘

78.恐怖水母

79.快速排序

80.粒子裂变

81.链表动态增长或缩短

82.链表节点删除

83.两个整数之间所有的素数

84.路痴

85.冒泡排序

86.你会存钱吗

87.逆序整数

88.排列

89.排列分析

90.平均值函数

91.奇特的分数数列

92.求建筑高度

93.区间内素数

94.三点顺序

95.山迪的麻烦

96.删除字符

97.是该年的第几天

98.是该年的第几天?

99.数据加密

100.搜索字符

101.所有素数

102.探索合数世纪

103.特殊要求的字符串

104.特殊整数

105.完全数

106.王的对抗

107.危险的组合

108.文件比较

109.文章统计

110.五猴分桃

111.小型数据库

112.幸运儿

113.幸运数字”7

114.选择排序

115.寻找规律

116.循环移位

117.延伸的卡片

118.羊羊聚会

119.一维数组”赋值“

120.一维数组”加法“

121.勇闯天涯

122.右上角

123.右下角

124.圆及圆球等的相关计算

125.圆及圆球等相关计算

126.程序员添加行号

127.找出数字

128.找幸运数

129.找最大数

130.整数位数

131.重组字符串

132.子序列的和

133.子字符串替换

134.自然数立方的乐趣

135.字符串比较

136.字符串复制

137.字符串加密编码

138.字符串逆序

139.字符串排序

140.字符串替换

141.字符串左中右

142.组合数

143.最次方数

144.最大乘积

145.最大整数

146.最小整数

147.最长回文子串

148.左上角

149.左下角

1.1“的传奇

#include

#include

#include

int main()

{

int n,i,j,k=0,x=1,y,z,m,p,q,a,s=0;

scanf("%d",&n);

m=n;

for(i=1;i<12;i++)

{

m=m/10;

k++;

if(m==0)

break;

}

q=n;

k=k-1;

for(a=1;a<=k;a++)

{

x=x*10;

}

y=q%x;

z=q/x;

p=q-y;

if(z>=2)

s=s+x+z*k*(x/10);

else

s=s+z*k*(x/10);

for(j=p;j<=n;j++)

{

m=j;

for(i=1;i<12;i++)

{

x=m%10;

if(x==1)

s++;

m=m/10;

if(m==0)

break;

}

}

printf("%d",s);

return 0;

}

2.A+B

#include

int doubi(int n,int m)

{

n=n+m;

n=n%100;

return n;

}

int main()

{

int t,i,a[100],n,m;

scanf("%d",&t);

for (i=0;i<=(t-1);i++){

scanf("%d%d",&n,&m);

a[i]=doubi(n,m);

}

for (i=0;i<=(t-1);i++)

printf("%d\n",a[i]);

return 0;

}

3.A+B

#include

int main()

{

int A,B,sum;

scanf("%d%d",&A,&B);

sum=A+B;

printf("%d\n",sum);

return 0;

}

4.AB

#include

#include

#include

int main()

{

char s[100],q[100];

double a,b,c;

int n=0,i;

scanf("%lf%lf",&a,&b);

c=a*b;

sprintf(s,"%.0lf",c);

for(i=0;i

n=n+s[i]-48;}

while(n>=10){

sprintf(q,"%d",n);

n=0;

for(i=0;i

n=n+q[i]-48;

}

printf("%d",n);

return 0;

}

5.ACKERMAN

#include

#include

#include

int ack(int x,int y)

{

int n;

if (x==0) {n=y+1;

return n;}

else if (y==0) n=ack(x-1,1);

else n=ack(x-1,ack(x,y-1));

return n;

}

int main()

{

int m,b;

scanf("%d%d",&m,&b);

m=ack(m,b);

printf("%d",m);

return 0;

}

6.Arithmetic Progressions

#include

#include

#include

int g(int n)

{

int i;

if(n==1) return 0;

if(n==2) return 1;

if(n==3) return 1;

for(i=2;i<=sqrt(n);i++) if(n%i==0) return 0;

return 1;

}

int f(int a,int b,int c)

{

int i=0,s=a-b;

if(c==1&&g(a)==1) return a;

if(b==0&&g(a)!=1) return -1;

while(1){

s=s+b;

if(g(s)) i++;

if(i>=c) break;

}

return s;

}

int main()

{

int a,b,c,d[100],i=0,n;

while(1){

scanf("%d%d%d",&a,&b,&c);

if(a==0&&b==0&&c==0) break;

d[i]=f(a,b,c);

i++;

}

n=i;

for(i=0;i

printf("%d\n",d[i]);

return 0;

}

7.Bee

#include

#include

int main()

{

int A[100],i=0,j,k,female=0,male=1,x;

for(;;i++)

{

scanf("%d",&A[i]);

if(A[i]==-1)

break;

}

for(j=0;j

{

female=0,male=1;

for(k=1;k

{

x=female;

female=male;

male=x+male+1;

}

printf("%d %d\n",male,female+male+1);

}

return 0;

}

8.Checksum algorithm

#include

#include

#include

int main()

{

int i,n,t,j;

char s[100][100];

for(i=0;;i++){

gets(s[i]);

if(s[i][0]=='#') break;

}

n=i;

for(i=0;i

t=0;

for(j=0;j

if(s[i][j]==32) t=t;

else t=t+(j+1)*(s[i][j]-64);

printf("%d\n",t);

}

return 0;

}

9.Coin Test

#include

#include

int main()

{

char A[100000];

int n,i=0,a=0,b=0,j;

double x;

while(1)

{

scanf("%c",&A[i]);

if(A[i]=='\n')

break;

i++;

}

for(j=0;j

{

if(A[j]=='S')

{

printf("WA");

goto OH;

}

if(A[j]=='U')

a++;

if(A[j]=='D')

b++;

}

x=a*1.0/(a+b)*1.0;

if(x-0.5>0.003||x-0.5<-0.003)

printf("Fail");

else

printf("%d/%d",a,a+b);

OH:return 0;

}

10.Dexter need help

#include

int fun(int a)

{

if(a==1) return 1;

else

return fun(a/2)+1;

}

int main()

{

int a,b[100],i=0,j;

while(1)

{

scanf("%d",&a);

if(a==0)break;

b[i]=fun(a);

i++;

}

for(j=0;j

printf("%d\n",b[j]);

}

return 0;

}

11.Double

#include

#include

#include

int main()

{

int a[100],b[100],i,j,n,t=0;

for(i=0;;i++){

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

if(a[i]==0) break;

}

n=i;

for(i=0;i

b[i]=2*a[i];

for(i=0;i

for(j=0;j

if(a[i]==b[j]) t++;

printf("%d",t);

return 0;

}

12.Easy problem

#include

#include

#include

int main()

{

int N,i,n,j=0;

scanf("%d",&N);

for(i=2;i

if((N+1)%i==0)j++;

}

printf("%d",j/2);

return 0;

}

13.Favorite number

#include

#include

#define MAXNUM 100000

int prime_number = 0;

int prime_list[MAXNUM];

bool is_prime[MAXNUM];

int ans[MAXNUM + 2];

int dp[MAXNUM + 2];

void set_prime() {

int i, j;

memset(is_prime, 0, sizeof(is_prime));

for (i = 2; i < MAXNUM; i++) {

if (is_prime[i] == 0) {

prime_list[prime_number++] = i;

if (i >= MAXNUM / i) continue;

for (j = i * i; j < MAXNUM; j+=i) {

is_prime[j] = 1;

}

}

}

}

int main() {

int i, j, k,o=0,d[100];

memset(dp, -1, sizeof(dp));

set_prime();

ans[0] = 0;

dp[1] = 0;

for (i = 1; i <= MAXNUM; i++) {

ans[i] = ans[i - 1] + dp[i];

if (dp[i + 1] == -1 || dp[i + 1] > dp[i] + 1) {

dp[i + 1] = dp[i] + 1;

}

for (j = 0; j < prime_number; j++) {

if (i > MAXNUM / prime_list[j]) break;

k = i * prime_list[j];

if (dp[k] == -1 || dp[k] > dp[i] + 1) {

dp[k] = dp[i] + 1;

}

}

}

while (scanf("%d%d", &i, &j) == 2 && (i || j)) {

d[o]=ans[j] - ans[i - 1];

o++;

}

for(i=0;i

printf("%d\n",d[i]);

}

14.Graveyard

#include

#include

#include

int main()

{

int a[100],b[100],n,i,j;

double s,p,l,t;

for(i=0;;i++){

scanf("%d%d",&a[i],&b[i]);

if(a[i]==0&&b[i]==0) break;

}

n=i;

for(i=0;i

p=10000;

if(b[i]%a[i]==0){printf("0.0000\n");continue;};

t=10000/((double)a[i]);

for(j=1;j

l=10000/((double)(a[i]+b[i]));

l=t-j*l;

l=fabs(l);

if(l

}

s=(a[i]-1)*p;

printf("%.4lf\n",s);

}

return 0;

}

15.Hailstone

#include

#include

#include

int f(int n)

{

int s=1;

while(1){

if(n==1) return s;

else if(n%2==0) n=n/2,s++;

else n=3*n+1,s++;

}

}

int main()

{

int n,m,i,j=0,t;

scanf("%d%d",&m,&n);

printf("%d %d",m,n);

if(m>n) t=m,m=n,n=t;

for(i=m;i<=n;i++)

if(f(i)>j) j=f(i);

printf(" %d",j);

return 0;

}

16.Hanoi

#include

#include

#define M 70

int start[M], targe[M];

long long f(int *p, int k, int fina)

{

if(k==0) return 0;

if(p[k]==fina) return f(p,k-1,fina);

return f(p,k-1,6-fina-p[k])+(1LL<<(k-1));

}

int main ()

{

long long ans;

int n;

while(scanf("%d",&n),n)

{

int i;

for(i=1;i<=n;i++) scanf("%d",&start[i]);

for(i=1;i<=n;i++) scanf("%d",&targe[i]);

int c=n;

for(;c>=1&&start[c]==targe[c];c--);

if(c==0)

{

printf("0\n"); continue;

}

int other=6-start[c]-targe[c];

ans=f(start,c-1,other)+f(targe,c-1,other)+1;

printf("%lld\n",ans);

}

return 0;

}

17.Houseboat

#include

#include

#include

#define pi 3.1415926

int f(float x,float y)

{

int i;

for(i=0;;i++)

if(50*i>sqrt(x*x+y*y)*sqrt(x*x+y*y)*pi/2) break;

return i;

}

int main()

{

int n,i,a[100];

float x,y;

scanf("%d",&n);

for(i=0;i

scanf("%f%f",&x,&y);

a[i]=f(x,y);

}

for(i=0;i

printf("%d %d\n",i+1,a[i]);

return 0;

}

18.Music Composer

19.Redistribute wealth

#include

#include

#include

int main()

{

int a[1000],b[1000],n,i,j,s,sum,t,m,mid,c[100],k=0;

while(1){

scanf("%d",&n);

if(n==0) break;

{

s=0;

for(i=1;i<=n;i++){

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

s=s+a[i];}

m=s/n;

b[1]=a[1]-m;

b[0]=0;

for(i=2;i

b[i]=b[i-1]+a[i]-m;

for(i=0;i

for(j=0;j

if(b[j]>b[j+1]) t=b[j],b[j]=b[j+1],b[j+1]=t;

mid=b[n/2];

sum=0;

for(i=0;i<=n-1;++i) sum=sum+fabs(mid-b[i]);

c[k]=sum;k++;

}}

for(i=0;i

return 0;

}

20.Road trip

#include

#include

#include

int f(int n)

{

int a[100],b[100],i,s;

for(i=0;i

scanf("%d%d",&a[i],&b[i]);

s=a[0]*b[0];

for(i=1;i

s=s+a[i]*(b[i]-b[i-1]);

return s;

}

int main()

{

int n,c[100],i=0;

while(1){

scanf("%d",&n);

if(n==-1) break;

c[i]=f(n);

i++;

}

n=i;

for(i=0;i

printf("%d\n",c[i]);

return 0;

}

21.Scoring

#include

#include

#include

int main()

{

int i,j,sum,min,c,count,n,a,b;

char s1[50],s2[50];

scanf("%d",&n);

for(i=0;i

{

count=sum=0;

scanf("%s",s2);

for(j=0;j<4;j++)

{

scanf("%d%d",&a,&b);

if(b!=0)

{

sum+=(a-1)*20+b;

count++;

}

}

if(i==0)

{

c=count,min=sum;

strcpy(s1,s2);

}

else if(count>c||(count==c&&sum

{

min=sum;

c=count;

strcpy(s1,s2);

}

}

printf("%s %d %d\n",s1,c,min);

return 0;

}

22.Specialized Numbers

#include

#include

int main()

{

int i,n,sum10,sum12,sum16;

for(i=2992;i<3000;i++){

n=i;

sum10=0;

while(n){

sum10+=n%10;

n/=10;

}

n=i;

sum12=0;

while(n){

sum12+=n%12;

n/=12;

}

n=i;

sum16=0;

while(n){

sum16+=n%16;

n/=16;

}

if(sum10==sum12&&sum12==sum16) printf("%d\n",i);

}

return 0;

}

23.Sticks

#include

#include

#include

int len[64], n, minlen, get;

bool b[64];

int cmp(const void *a, const void *b)

{

return *(int *)a < *(int *)b ? 1 : -1;

}

bool dfs(int nowlen, int nowget, int cnt)

{

if(cnt >= n) return false;

if(get == nowget) return true;

int i;

bool f = false;

if(nowlen == 0) f = true;

for(i = cnt; i < n; i++)

{

if(!b[i])

{

if(len[i] + nowlen == minlen)

{

b[i] = true;

if(dfs(0, nowget+1, nowget))

return true;

b[i] = false;

return false;

}

else if(len[i] + nowlen < minlen)

{

b[i] = true;

if(dfs(nowlen+len[i], nowget, i+1))

return true;

b[i] = false;

if(f) return false;

while(i + 1 < n && len[i] == len[i+1]) i++;

}

}

}

return false;

}

int main()

{

int i, tollen;

while(scanf("%d", &n), n)

{

tollen = 0;

int j = 0, p;

for(i = 0; i < n; i++)

{

scanf("%d", &p);

if(p <= 50)

{

len[j] = p;

tollen += len[j];

j++;

}

}

n = j;

if(n == 0)

{

printf("0\n");

continue;

}

qsort(len, n, sizeof(int), cmp);

for(minlen = len[0]; ; minlen++)

{

if(tollen % minlen) continue;

memset(b, 0, sizeof(b));

get = tollen / minlen;

if(dfs(0, 0, 0))

{

printf("%d\n", minlen);

break;

}

}

}

return 0;

}

24.Sum of Consecutive

#include

#include

#include

int len[64],n,minlen,get;

int b[64];

int cmp(const void *a,const void *b)

{

return *(int *)a<*(int *)b?1:-1;

}

int dfs(int nowlen,int nowget,int cnt)

{

if(cnt>=n) return 0;

if(get==nowget) return 1;

int i,f=0;

if(nowlen==0) f=1;

for(i=cnt;i

if(len[i]+nowlen==minlen){

b[i]=1;

if(dfs(0,nowget+1,nowget)) return 1;

b[i]=0;

return 0;

}

else if(len[i]+nowlen

b[i]=1;

if(dfs(nowlen+len[i],nowget,i+1)) return 1;

b[i]=0;

if(f) return 0;

while(i+1

}

}

return 0;

}

int main()

{

int i,tollen,q=0,c[100];

while(scanf("%d",&n),n){

tollen=0;

int j=0,p;

for(i=0;i

scanf("%d",&p);

if(p<=50){

len[j]=p;

tollen+=len[j];

j++;

}

}

n=j;

if(n==0){printf("0\n");

continue;}

qsort(len,n,sizeof(int),cmp);

for(minlen=len[0];;minlen++){

if(tollen%minlen) continue;

memset(b,0,sizeof(b));

get=tollen/minlen;

if(dfs(0,0,0)){

c[q]=minlen;

q++;

break;

}

}

}

for(i=0;i

printf("%d\n",c[i]);

return 0;

}

25.Symmetric Sort

#include

#include

#include

int main()

{

double A[100];

int i=0,j=0,k=0,l=0,sum=0;

while(1)

{

scanf("%lf",&A[i]);

if(A[i]==0)

break;

i++;

}

for(j=0;j

{

if(A[j]==2)printf("1\n");

else{

int B[10000],m=1,number=0;

double n;

B[0]=2;

for(k=3;k<=A[j];k+=2)

{

n=(double)k;

for(l=2;l<=sqrt(n);l++)

{

if(k%l==0)

goto ai;

}

B[m]=k;

m++;

ai:;

}

for(k=0;k

{

sum=0;

for(l=k;l

{

sum+=B[l];

if(sum==A[j])

{

number++;

break;

}

}

}

printf("%d\n",number);

}

}

return 0;

}

26.The Clock

#include

#include

#include

int main()

{

char s[100][100],a[100];

int i,j,n;

scanf("%d",&n);

for(i=0;i

for(i=0;i

for(j=0;j

if(strlen(s[i])>strlen(s[i+1])) strcpy(a,s[i]),strcpy(s[i],s[i+1]),strcpy(s[i+1],a);

if(n%2==0){

for(i=0;i

printf("%s ",s[n-1]);

for(i=i-3;i>0;i=i-2) printf("%s ",s[i]);

}

else{

for(i=0;i

printf("%s ",s[n-1]);

for(i=i-1;i>0;i=i-2) printf("%s ",s[i]);

}

return 0;

}

27.The Ratio of gainers to losers

#include

int main()

{

char s[5];

int i,sum=0;

gets(s);

for(i=0;s[i]!='\0';i++)

{

switch(s[i])

{

case'I': sum+=1;break;

case'V': sum=5-sum;break;

case'X':sum=10-sum;break;

}

}

printf("%d\n",sum);

return 0;

}

28.VOL大学乒乓球比赛

#include

#include

int main()

{

printf("A=Z\nB=X\nC=Y\n");

return 0;

}

29.毕业设计论文打印

#include

#include

int main()

{

int a[100],j=1,i,n,m;

scanf("%d%d",&n,&m);

for(i=0;i

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

for(i=0;i

if(a[i]>a[m]) j++;

printf("%d",j++);

return 0;

}

30.边沿与内芯的差

#include

#include

int main()

{

int A[100][100],i,j,m,n,s=0,t=0;

scanf("%d%d",&n,&m);

for(i=1;i<=n;i++)

{

for(j=1;j<=m;j++)

{

scanf("%d",&A[i][j]);

}

}

for(i=2;i

s=s+A[1][i];

for(i=2;i

s=s+A[n][i];

for(i=1;i<=n;i++)

s=s+A[i][1];

for(i=1;i<=n;i++)

s=s+A[i][m];

for(i=2;i

{

for(j=2;j

{

t=t+A[i][j];

}

}

s=s-t;

printf("%d",s);

return 0;

}

31.不会吧,又是A+B

#include

#include

int main()

{

int AH,AM,AS,BH,BM,BS;

scanf("%d%d%d%d%d%d",&AH,&AM,&AS,&BH,&BM,&BS);

AH=AH+BH;

AM=AM+BM;

AS=AS+BS;

if(AS>=60){

AM=AM+1;

AS=AS-60;

}

if(AM>=60){

AH=AH+1;

AM=AM-60;

}

printf("%d %d %d",AH,AM,AS);

return 0;

}

32.不屈的小蜗

#include

#include

int main()

{

int n,i,s=0;

scanf("%d",&n);

for(i=0;;i++){

s=s+10;

if(s>=n) break;

s=s-5;

}

printf("%d",i+1);

return 0;

}

33.操场训练

#include

#include

#include

void BubbleSort(double A[],int s,int m)

{

int i,j;

double k;

for(j=s;j

for(i=s;i

if(A[i]>A[i+1])

{

k=A[i];

A[i]=A[i+1];

A[i+1]=k;

}

}

int main()

{

int n,i;

double X[10000],Y[10000],s1=0,s2=0,s=0;

scanf("%d",&n);

for(i=0;i

{

scanf("%lf%lf",&X[i],&Y[i]);

s2+=X[i];

}

BubbleSort(X,0,n);

for(i=0;i

s1+=X[i]-i*1.0;

s1=(int)((s1/n) + 0.5);

s2=(int)((s2/n) + 0.5);

for(i=0;i

s=s+abs(X[i]-i-s1)+abs(Y[i]-s2);

printf("%.0lf",s);

return 0;

}

34.插入链表节点

#include

#include

typedef struct tagLNode{

int data;

struct tagLNode *next;

}LNode,*LinkList;

void create(LinkList *l,int n)

{

LinkList p,s;

p=*l=(LinkList)malloc(sizeof(LNode));

for(;n>0;n--){

s=(LinkList)malloc(sizeof(LNode));

scanf("%d",&s->data);

p->next=s,p=s;

}

p->next=NULL;

}

void list(LinkList l)

{

LinkList p=l->next;

while(p!=NULL){

printf("%d ",p->data);

p=p->next;

}

}

void chazhao(LinkList l,int n)

{

LinkList p=l->next,s,q;

int i,j,k;

for(i=0;i<100;i++){

j=p->data;

q=p->next;

k=q->data;

if(jn) break;

p=p->next;}

s=(LinkList)malloc(sizeof(LNode));

s->data=n;

s->next=p->next,p->next=s;

}

int main()

{

LinkList q;

int n,m;

q=(LinkList)malloc(sizeof(LNode));

scanf("%d",&n);

create(&q,n);

scanf("%d",&m);

chazhao(q,m);

list(q);

return 0;

}

35.插入排序

#include

#include

void charu(int a[],int s,int m)

{

int i,k,t;

for(i=s+1;i<=s+m-1;i++){

t=a[i];k=i-1;

while(t>a[k]){

a[k+1]=a[k];

k--;

if(k==s-1)break;

}

a[k+1]=t;

}

}

int main()

{

int a[100],n,i,s,m;

scanf("%d",&n);

m=n;

for(i=0;i

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

scanf("%d%d",&s,&m);

charu(a,s,m);

for(i=0;i

printf("%d ",a[i]);

return 0;

}

36.插入字符

#include

#include

int main()

{

char A[80]={0},*p,x;

int i;

p=A;

gets(A);

scanf("%c%d",&x,&i);

for(;*p!='\0';p++);

for(;p>A+i;p--)

*p=*(p-1);

*(A+i)=x;

puts(A);

return 0;

}

37.成绩表计算

#include

#include

struct tag{

long int no;

char name[21];

int age;

double yy,sx,yw,zz,wl,hx,xx,s,jun;

};

int main()

{

struct tag a[10],t,q;

int i,j;

for(i=0;i<10;i++)

scanf("%ld%s%d%lf%lf%lf%lf%lf%lf%lf",&a[i].no,a[i].name,&a[i].age,&a[i].yy,&a[i].sx,&a[i].yw,&a[i].zz,&a[i].wl,&a[i].hx,&a[i].xx);

for(i=0;i<10;i++){

a[i].s=a[i].yy+a[i].sx+a[i].yw+a[i].zz+a[i].wl+a[i].hx+a[i].xx;

a[i].jun=a[i].s/7;

}

t.s=a[0].s;

for(i=1;i<10;i++)

if(a[i].s>t.s){ t.s=a[i].s;

j=i;}

q=a[j];

printf("%ld %s %d %.2lf %.2lf %.2lf %.2lf %.2lf %.2lf %.2lf",q.no,q.name,q.age,q.yy,q.sx,q.yw,q.zz,q.wl,q.hx,q.xx);

return 0;

}

38.成绩转换

#include

#include

int main()

{

int a;

scanf("%d",&a);

if(a>=90)printf("A\n");

else if(a>=80)printf("B\n");

else if(a>=70)printf("C\n");

else if(a>=60)printf("D\n");

else printf("E\n");

return 0;

}

39.出租车费

#include

#include

#include

int main()

{

double a,b,c;

scanf("%lf",&a);

if(a>2)

{

if(a>15)

{

c=ceil(a-15);

b=26.5+2.1*c;

printf("%.6lf",b);

}

else

{

c=ceil(a-2);

b=7+1.5*c;

printf("%.6lf",b);

}

}

else printf("7.000000");

return 0;

}

40.除法

#include

#include

#include

int main()

{

int a,n,i,j,x,y,z,A[10000],B[10],m=1;

scanf("%d",&n);

for(i=10000;i<100000;i++)

{

a=i%n;

if(a==0)

{

A[m]=i;

m++;

}

}

for(j=1;j<=m;j++)

{

x=A[j]/n;

if(x<1000)

a:continue;

else

{

B[1]=A[j]%10;

B[2]=(A[j]/10)%10;

B[3]=(A[j]/100)%10;

B[4]=(A[j]/1000)%10;

B[5]=(A[j]/10000)%10;

B[6]=x%10;

B[7]=(x/10)%10;

B[8]=(x/100)%10;

B[9]=(x/1000)%10;

B[10]=(x/10000)%10;

for(y=1;y<11;y++)

{

for(z=y+1;z<11;z++)

{

if(B[y]-B[z]==0)

goto a;

}

}

}

if(x<10000)

printf("%d/0%d=%d\n",A[j],x,n);

else

printf("%d/%d=%d\n",A[j],x,n);

}

return 0;

}

41.创建与遍历职工链表

#include

#include

#include

typedef struct tagLNode{

int data;

struct tagLNode *next;

}LNode,*LinkList;

void create(LinkList *l,int n)

{

LinkList p,s;

p=*l=(LinkList)malloc(sizeof(LNode));

for(;n>0;n--){

s=(LinkList)malloc(sizeof(LNode));

scanf("%d",&s->data);

p->next=s,p=s;

}

p->next=NULL;

}

void list(LinkList l)

{

LinkList p=l->next;

while(p!=NULL){

printf("%d ",p->data);

p=p->next;

}

}

int main()

{

LinkList q;

int n;

q=(LinkList)malloc(sizeof(LNode));

scanf("%d",&n);

create(&q,n);

list(q);

return 0;

}

42.大数乘法

#include

#include

#include

void cheng(char a[],char b[])

{

int i,j,ca,cb,*s;

ca=strlen(a);

cb=strlen(b);

s=(int *)malloc(sizeof(int)*(ca+cb));

for (i=0;i

for (i=0;i

for (j=0;j

s[i+j+1]+=(a[i]-'0')*(b[j]-'0');

for (i=ca+cb-1;i>=0;i--)

if (s[i]>=10)

{

s[i-1]+=s[i]/10;

s[i]%=10;

}

i=0;

while(s[i]==0) i++;

for (;i

printf("\n");

free(s);

}

int main()

{

char a[100],b[100];

gets(a),gets(b);

if(a[0]=='-'&&b[0]!='-')

{

printf("-");

cheng(&a[1],b);

}

else if(a[0]=='-'&&b[0]=='-')

{

cheng(&a[1],&b[1]);

}

else if(a[0]!='-'&&b[0]=='-')

{

printf("-");

cheng(a,&b[1]);

}

else

cheng(a,b);

return 0;

}

43.大数除法

#include

#include

#define MAXSIZE 1025

void Div(char *str1, char *str2, char *str3)

{

int i1, i2, i, j, jj, tag, carry, cf, c[MAXSIZE];

int len1 = strlen(str1), len2 = strlen(str2), lend;

char d[MAXSIZE];

memset(c, 0, sizeof(c));

memcpy(d, str1, len2);

lend = len2; j = 0;

for( i1=len2-1; i1 < len1; ++i1 )

{

if( lend < len2 )

{

d[lend] = str1[i1+1]; c[j] = 0;

++j; ++lend;

}

else

if( lend == len2 )

{

jj = 1;

for( i=0; i < lend; ++i )

{

if( d[i] > str2[i] ) break;

else if( d[i] < str2[i] )

{

jj = 0; break;

}

}

if( jj == 0 )

{

d[lend] = str1[i1+1]; c[j] = 0;

++j; ++lend;

continue;

}

}

if( jj==1 || lend > len2 )

{

cf = jj=0;

while( d[jj] <= '0' && jj < lend ) ++jj;

if( lend-jj > len2 ) cf = 1;

else

if( lend-jj < len2 ) cf = 0;

else

{

i2 = 0; cf = 1;

for( i=jj; i < lend; ++i )

{

if( d[i] < str2[i2] )

{

cf = 0; break;

}

else if( d[i] > str2[i2] )

{

break;

}

++i2;

}

}

while( cf )

{

i2 = len2-1; cf = 0;

for( i=lend-1; i >= lend-len2; --i )

{

d[i] = d[i]-str2[i2]+'0';

if( d[i] < '0' )

{

d[i] = d[i]+10; carry = 1;

--d[i-1];

}

else carry = 0;

--i2;

}

++c[j]; jj=0;

while( d[jj] <= '0' && jj < lend ) ++jj;

if( lend-jj > len2 ) cf = 1;

else

if( lend-jj < len2 ) cf = 0;

else

{

i2 = 0; cf = 1;

for( i=jj; i < lend; ++i )

{

if( d[i] < str2[i2] )

{

cf = 0; break;

}

else if( d[i] > str2[i2] )

{

break;

}

++i2;

}

}

}

jj = 0;

while( d[jj] <= '0' && jj < lend ) ++jj;

for( i=0;i < lend-jj; ++i ) d[i] = d[i+jj];

d[i] = str1[i1+1]; lend = i+1;

++j;

}

}

i = tag = 0;

while( c[i] == 0 ) ++i;

for( ; i < j; ++i, ++tag ) str3[tag] = c[i]+'0';

str3[tag] = '\0';

}

int main()

{

char a[110], b[110], c[110];

scanf( "%s%s", a, b );

if(a[0]=='-'&&b[0]!='-') printf("-");

if(b[0]=='-'&&a[0]!='-') printf("-");

Div( a, b, c );

printf( "%s\n", c );

return 0;

}

44.大数加法

#include

#include

#include

#include

void add(const char *num1, const char *num2, char *result)

{

if(!result) return;

if(!num1) { strcpy(result, num2); return; }

if(!num2) { strcpy(result, num1); return; }

char mark;

int bits1, bits2;

char *temp_str = NULL;

char *temp_str2 = NULL;

int temp, max, min, a;

if(num1[0] == '-' && num2[0] != '-')

{

bits1 = strlen(num1) - 1;

bits2 = strlen(num2);

max = bits1 > bits2 ? bits1 : bits2;

min = bits1 < bits2 ? bits1 : bits2;

if(bits1 > bits2) mark = 1;

else if(bits1 < bits2) mark = 0;

else{

temp = strcmp(num1+1, num2);

if(temp > 0) mark = 1;

else if(temp < 0) mark = 0;

else { result = "0"; return; }

}

if(mark == 1)

{

max++;

temp_str = (char *) malloc(max+1);

assert(temp_str != NULL);

memset(temp_str, '0', max+1);

strcpy(temp_str, num1);

while(min-- > 0)

{

a = temp_str[--max] - num2[--bits2];

if(a < 0)

{

temp_str[max - 1]--;

a += 10;

}

temp_str[max] = a + '0';

}

temp_str2 = temp_str;

while(*(++temp_str) == '0') ;

if(*temp_str == '\0') result = "0";

else{

strcpy(result+1, temp_str);

result[0] = '-';

}

temp_str = temp_str2;

}else{

temp_str = (char *) malloc(max+1);

assert(temp_str != NULL);

memset(temp_str, '0', max+1);

strcpy(temp_str, num2);

while(min-- > 0)

{

a = temp_str[--max] - num1[bits1--];

if(a < 0)

{ temp_str[max - 1]--;

a += 10;

}

temp_str[max] = a + '0';

}

temp_str2 = temp_str;

while(*temp_str == '0') temp_str++;

if(*temp_str == '\0') result = "0";

else strcpy(result, temp_str);

temp_str = temp_str2;

}

if(temp_str) free(temp_str);

return ;

}

else if(num1[0] != '-' && num2[0] == '-')

{

bits1 = strlen(num1);

bits2 = strlen(num2) - 1;

max = bits1 > bits2 ? bits1 : bits2;

min = bits1 < bits2 ? bits1 : bits2;

if(bits1 > bits2) mark = 0;

else if(bits1 < bits2) mark = 1;

else{

temp = strcmp(num1, num2+1);

if(temp > 0) mark = 0;

else if(temp < 0) mark = 1;

else { result = "0"; return; }

}

if(mark == 1)

{

max++;

temp_str = (char *) malloc(max+1);

assert(temp_str != NULL);

memset(temp_str, '0', max+1);

strcpy(temp_str, num2);

while(min-- > 0)

{

a = temp_str[--max] - num1[--bits1];

if(a < 0)

{

temp_str[max - 1]--;

a += 10;

}

temp_str[max] = a + '0';

}

temp_str2 = temp_str;

while(*(++temp_str) == '0') ;

if(*temp_str == '\0') result = "0";

else{

strcpy(result+1, temp_str);

result[0] = '-';

}

temp_str = temp_str2; }

else{

temp_str = (char *) malloc(max+1);

assert(temp_str != NULL);

memset(temp_str, '0', max+1);

strcpy(temp_str, num1);

while(min-- > 0)

{

a = temp_str[--max] - num2[bits2--];

if(a < 0)

{

temp_str[max - 1]--;

a += 10;

}

temp_str[max] = a + '0';

}

temp_str2 = temp_str;

while(*temp_str == '0') temp_str++;

if(*temp_str == '\0') result = "0";

else strcpy(result, temp_str);

temp_str = temp_str2;

}

if(temp_str) free(temp_str);

return ;

}

else if(num1[0] == '-' && num2[0] == '-')

{

bits1 = strlen(num1) - 1;

bits2 = strlen(num2) - 1;

max = bits1 > bits2 ? bits1 : bits2;

min = bits1 < bits2 ? bits1 : bits2;

max += 2;

temp_str = (char *) malloc(max+1);

assert(temp_str != NULL);

memset(temp_str, '0', max+1);

if(bits1 > bits2)

{

strcpy(temp_str+2, num1+1);

while(min-- > 0)

{

a = (temp_str[--max] - '0') + (num2[bits2--] - '0');

if(a >= 10)

{

temp_str[max - 1]++;

a -= 10;

}

temp_str[max] = a + '0';

}

}else{

strcpy(temp_str+2, num2+1);

while(min-- > 0)

{

a = (temp_str[--max] - '0') + (num1[bits1--] - '0');

if(a >= 10)

{

temp_str[max - 1]++;

a -= 10;

}

temp_str[max] = a + '0';

}

}

temp_str2 = temp_str;

while(*(++temp_str) == '0') ;

if(*temp_str == '\0') result = "0";

else{

strcpy(result+1, temp_str);

result[0] = '-';

}

if(temp_str2) free(temp_str2);

return ;

}

else{

bits1 = strlen(num1);

bits2 = strlen(num2);

max = bits1 > bits2 ? bits1 : bits2;

min = bits1 < bits2 ? bits1 : bits2;

max++;

temp_str = (char *) malloc(max+1);

assert(temp_str != NULL);

memset(temp_str, '0', max+1);

if(bits1 > bits2)

{

strcpy(temp_str+1, num1);

while(min-- > 0)

{

a = (temp_str[--max] - '0') + (num2[--bits2] - '0');

if(a >= 10)

{

temp_str[max - 1]++;

a -= 10;

}

temp_str[max] = a + '0';

}

}else{

strcpy(temp_str+1, num2);

while(min-- > 0)

{

a = (temp_str[--max] - '0') + (num1[--bits1] - '0');

if(a >= 10)

{

temp_str[max - 1]++;

a -= 10;

}

temp_str[max] = a + '0';

}

}

temp_str2 = temp_str;

while(*temp_str == '0') temp_str++;

if(*temp_str == '\0') result = "0";

else strcpy(result, temp_str);

if(temp_str2) free(temp_str2);

return ;

}

}

int main()

{

char a[100],b[100],c[100];

gets(b);

gets(c);

add(b,c,a);

printf("%s",a);

return 0;

}

45.单词频次

#include

#include

int main()

{

char s[1000][1000];

FILE *p;

int i,j=0,k=0,h=0,q=0,e;

p=fopen("DATA5610.TXT","r");

while(!feof(p)){

if(fgets(s[q],999,p)==NULL) continue;

q++;

}

e=q;

for(q=0;q

for(i=0;i<1000;i++){

if(s[q][i]=='i'&&s[q][i+1]=='f') h++;

if(s[q][i]=='w'&&s[q][i+1]=='h'&&s[q][i+2]=='i'&&s[q][i+3]=='l'&&s[q][i+4]=='e')

j++;

if(s[q][i]=='f'&&s[q][i+1]=='o'&&s[q][i+2]=='r') k++;

}

printf("%d %d %d",h,j,k);

return 0;

}

46.迭代求根

#include

#include

#include

int main()

{

double a,b,c,d;

scanf("%lf",&a);

b=a;

c=1;

while ((fabs(b-c))>0.000001) {

d=(b+(a/b))/2;

c=b;

b=d;

};

printf("%.5lf",b);

return 0;

}

47.多项式的猜想

#include

#include

int main()

{

printf("6\n9\n11\n");

return 0;

}

48.二分查找

#include

#include

int BinarySearch(int A[],int n,int find){

int low,upper,mid;

low=0,upper=n-1;

while(low<=upper){

mid=low+(upper-low)/2;

if(A[mid]

else if(A[mid]>find)upper=mid-1;

else return mid;

}return -1;

}

int main()

{

int A[100000],n,m,i,j;

scanf("%d",&n);

for(i=0;i

scanf("%d",&A[i]);

}

scanf("%d",&j);

i=BinarySearch(A,n,j);

if(i>=0)printf("%d",i);

else printf("null");

return 0;

}

49.二分求根

#include

#include

int main()

{

double m,n,a,b,c,x;

scanf("%lf%lf",&m,&n);

while(c!=0)

{

x=(m+n)/2;

a=2*m*m*m-4*m*m+3*m-6;

b=2*n*n*n-4*n*n+3*n-6;

c=2*x*x*x-4*x*x+3*x-6;

if(a*c>0)

m=x;

else

n=x;

}

printf("%.2lf\n",x);

return 0;

}

50.发工资的日子

#include "stdio.h"

int main()

{ int i,j,m,s=0;

scanf("%d",&j);

for(m=0;m

scanf("%d",&i);

if(i==0){

break;

}

if(i>=100){

s=s+i/100;

i=i%100;

}

if(i>=50){

s=s+i/50;

i=i%50;

}

if(i>=10){

s=s+i/10;

i=i%10;

}

if(i>=5){

s=s+i/5;

i=i%5;

}

if(i>=2){

s=s+i/2;

i=i%2;

}

if(i>=1){

s++;

}

}

printf("%d",s);

return 0;

}

51.方差

#include

#include

int main()

{

int n;

double x,s=0,m=0,i;

scanf("%d",&n);

for(i=0;i

{

scanf("%lf",&x);

s=s+x;

m=m+x*x;

}

m=m-(2*s*s)/n*1.0+s*(s/n*1.0);

printf("%.6lf",m);

return 0;

}

52.分离单词

#include

#include

#include

int main()

{

char s[1000],b[1000][1000];

int i,n,j,h=0,m;

gets(s);

n=strlen(s);

for(i=0;i

if((s[i]>64&&s[i]<91)||(s[i]>96&&s[i]<123)){

m=0;

for(j=i;;j++) {if((s[j]>64&&s[j]<91)||(s[j]>96&&s[j]<123)) {

b[h][m]=s[j];m++;i++;

}

else {

b[h][m]=' ';

h++;

break;

}

}

h++;

}

}

for(i=h-2;i>=0;i--)

printf("%s",b[i]);

return 0;

}

53.分数拆分

#include

#include

int main()

{

int x,y,k,a,b;

scanf("%d",&k);

a=k*(k+1);

x=a;

while (x<=a&&x>k){

y=x;

while ((y<=x)&&(y>k)){

b=k*x+k*y;

if (x*y==b) printf("1/%d=1/%d+1/%d\n",k,x,y);

y=y-1;

};

x=x-1;

};

return 0;

}

54.分数化小数

#include

int main()

{

int a,b,c,d,i;

scanf("%d%d%d",&a,&b,&c);

d=a%b;

printf("%d.",a/b);

for(i=0;i

{

d=10*d;

printf("%d",d/b);

d=d%b;

}

printf("\n");

return 0;

}

55.分数加减法

#include

#include

int main()

{

int a,b,c,d,e,f,n,h=0;

char s;

scanf("%d/%d%c%d/%d",&a,&b,&s,&c,&d);

if(s=='+'){

e=a*d+b*c;

f=b*d;

n=f;

if(e==0) {printf("0");

return 0;}

if(e<0) e=-e,h=1;

if(f%e==0){

f=f/e;

e=e/(f/n);

}

if(h==0) printf("%d/%d",e,f);

else printf("-%d/%d",e,f);

}

if(s=='-'){

e=a*d-b*c;

f=b*d;

n=f;

if(e==0) {printf("0");

return 0;}

if(e<0) e=-e,h=1;

if(f%e==0){

f=f/e;

e=e/(f/n);

}

if(h==0) printf("%d/%d",e,f);

else printf("-%d/%d",e,f);

}

return 0;

}

56.复数

#include

#include

#include

int main()

{

double a,b,c,d;

char x1,x2,x3,x4,x5,x6;

scanf("%lf%lf%lf%lf",&a,&b,&c,&d);

if(b>0)x1='+';

else x1='-';

if(d>0)x2='+';

else x2='-';

if(b+d>0)x3='+';

else x3='-';

if(b-d>0)x4='+';

else x4='-';

if(a*d+b*c>0)x5='+';

else x5='-';

if((b*c-a*d)/(c*c+d*d)>0)x6='+';

else x6='-';

printf("(%.2lf%c%.2lfi)+(%.2lf%c%.2lfi)=(%.2lf%c%.2lfi)\n",a,x1,fabs(b),c,x2,fabs(d),a+c,x3,fabs(b+d));

printf("(%.2lf%c%.2lfi)-(%.2lf%c%.2lfi)=(%.2lf%c%.2lfi)\n",a,x1,fabs(b),c,x2,fabs(d),a-c,x4,fabs(b-d));

printf("(%.2lf%c%.2lfi)*(%.2lf%c%.2lfi)=(%.2lf%c%.2lfi)\n",a,x1,fabs(b),c,x2,fabs(d),a*c-b*d,x5,fabs(a*d+b*c));

printf("(%.2lf%c%.2lfi)/(%.2lf%c%.2lfi)=(%.2lf%c%.2lfi)",a,x1,fabs(b),c,x2,fabs(d),(a*c+b*d)/(c*c+d*d),x6,fabs((b*c-a*d)/(c*c+d*d)));

return 0;

}

57.高低交换

#include

#include

inline int xchg(unsigned char n)

{

return 16*(n-((n>>4)*16))+(n>>4);

}

int main()

{

int x;

scanf("%d",&x);

printf("%d",xchg(x));

return 0;

}

58.公园喷水器

#include

#include

#include

void BubbleSort(double A[],int s,int m)

{

int i,j;

double k;

for(j=s;j

{

for(i=s;i

{

if(A[i]

{

k=A[i];

A[i]=A[i+1];

A[i+1]=k;

}

}

}

}

int main()

{

int n,z=0,i;

double A[60],s=0;

scanf("%d",&n);

for(i=0;i

scanf("%lf",&A[i]);

BubbleSort(A,0,n);

for(i=0;i

{

z++;

s=s+2*sqrt(A[i]*A[i]-1);

if(s>=20)

break;

}

printf("%d",z);

return 0;

}

59.韩信点兵

#include

#include

int main()

{

int a,b,c,s;

scanf("%d%d%d",&a,&b,&c);

for (s=10;s<=100;s++){

if ((s-a)%3==0&&(s-b)%5==0&&(s-c)%7==0) {

printf("%d",s);

break;

};

};

if (s==101) printf("-1");

return 0;

}

60.行程编码压缩算法

#include

#include

#include

int main()

{

char a[100];

int i,n,h,j;

gets(a);

for(i=0;i

h=0;

for(j=i;j

if(a[j]==a[i]) h++;

else break;

printf("%d%c",h,a[i]);

i=i+h-1;}

return 0;

}

61.合并字符串

#include

#include

#include

int main()

{

char a[100],b[100];

gets(a);

gets(b);

strncat(a,b,100);

puts(a);

return 0;

}

62.猴子分桃

#include

#include

int main()

{

int n,m,b,c,d,e;

while (n>1){

if ((n-1)%5==0) {

b=(n-1)/5*4 ;if ((b-1)%5==0){

c=(b-1)/5*4;if ((c-1)%5==0){

d=(c-1)/5*4 ;if ((d-1)%5==0){

e=(d-1)/5*4;if ((e-1)%5==0) break;

}

}

}

};

n=n+1;

}

m=(e-1)/5*4;

printf("%d %d",n,m);

return 0;

}

63.火车站

#include

#include

int main()

{

int A[100],n,a,b,j=1,i;

scanf("%d",&n);

for(i=0;i

scanf("%d",&A[i]);

for(i=0;i

{

a=A[i];

for(j=i;j

if(A[j]

{

if(a-A[j]==1)

a=A[j];

else

{

printf("No");

goto ai;

}

}

}

printf("Yes");

ai:return 0;

}

64.获取指定二进制位

#include

void getbit(int n,int k)

{

int i;

for(i=2;i<=k;i++)

n=n/2;

printf("%d",n%2);

}

int main()

{

int n,k;

scanf("%d%d",&n,&k);

getbit(n,k);

return 0;

}

65.积分计算

#include

double f(double x)

{

return 1.0/(1.0+x*x);

}

double jf(double a,double b)

{

double h,s=0;;

int i;

h=(b-a)/5000000;

for(i=1;i<5000000;i++)

{

s+=(f(a)+f(a+h))*0.5*h;

a+=h;

}

return s;

}

int main()

{

double a,b,s;

scanf("%lf%lf",&a,&b);

s=jf(a,b);

printf("%lf",s);

return 0;

}

66.级数和

#include

#include

#include

int main()

{

int n,x,y;

double sum=0,i;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

x=pow((-1),i);

y=pow(2,i);

sum=sum-(x*y*1.0)/((x+y)*(2*y-x));

}

printf("%.6lf",sum);

return 0;

}

67.计算A+B

#include

#include

int main()

{

int A,B,sum;

scanf("%d%d",&A,&B);

sum=A+B;

printf("%d\n",sum);

return 0;

}

68.计算PI

#include

#include

int main()

{

double n=3.0,b=-1;

double a=1.0;

while ((1/n)>=1e-6) {

a=a+(b/n);

b=b*(-1);

n=n+2;

}

a=a*4;

printf("%.6lf",a);

return 0;

}

69.计算π

#include

#include

#include

int main()

{

int i;

long double n,s=0.0,x,m=-1.0;

double PI;

for(i=0;i<100000000000;i++)

{

m=(-1.0)*m;

n=m/(2*i+1);

s=s+n;

x=fabs(n);

if(x<0.0000001)

break;

}

PI=4.0*s;

printf("%.6lf",PI-0.000002);

return 0;

}

70.计算成绩

#include

#include

#include

int main()

{

double a,b,c,sum,avg;

scanf("%lf%lf%lf",&a,&b,&c);

sum=a+b+c;

avg=sum/3.0;

printf("%.6lf\n%.6lf\n",sum,avg);

return 0;

}

71.计算完全数

#include

#include

int main()

{

int a,b,n,c;

a=2;

while (a<1000){

b=a-1;

n=0;

while (b>0){

if (a%b==0) n=n+b;

b=b-1;

};

if (a==n) {

b=0;

n=0;

do{

b=b+1;

c=a%b;

}while (c!=0);

printf("%d=%d",a,b);

b=b+1;

while (b

if (a%b==0) printf("+%d",b);

b=b+1;

};

printf("\n");

};

a=a+1;

};

return 0;

}

72.检测位图长宽

#include

#include

int main()

{

FILE *p;

long biWidth,biHeight;

p=fopen("DATA5611.BMP","rb");

if(p!=NULL)

{

fseek(p,18,SEEK_SET);

fread(&biWidth,sizeof(long),1,p);

fread(&biHeight,sizeof(long),1,p);

printf("%ld %ld",biWidth,biHeight);

fclose(p);

}

return 0;

}

73.检查图像文件格式

#include

#include

#include

int main(int argc, char *argv[])

{

FILE *fp = fopen("DATA5609.DAT", "rb");

if (fp==NULL)return -1;

char buf[11] = "";

fread(buf, sizeof(buf), 1, fp);

if (strncmp("JFIF", buf + 6, strlen("JFIF")) == 0){

printf("JPEG");

}

else if (strncmp("GIF89a", buf, strlen("GIF89a")) == 0){

printf("GIF");

}

else if (strncmp("PNG", buf + 1, strlen("PNG")) == 0){

printf("PNG");

}

else{

printf("UNKNOW");

}

return 0;

}

74.奖金发放

#include

#include

int main()

{

double a,b;

scanf("%lf",&a);

if(a>10)

{

if(a>20)

{

if(a>40)

{

if(a>60)

{

if(a>100)

{

b=3.95+(a-100)*0.01;

}

else

b=3.35+(a-60)*0.015;

}

else

b=2.75+(a-40)*0.03;

}

else

b=1.75+(a-20)*0.05;

}

else

b=1+(a-10)*0.075;

}

else

b=a*0.1;

printf("%.6lf",b);

return 0;

}

75.阶乘合计

#include

#include

#include

int f(int n)

{

int s=1;

while(n>1){

s=s*n;

n--;

}

return s;

}

int main()

{

int i,j,k,s,n,t,p,q,y,x;

scanf("%d",&n);

if(n%2==1) n--;

for(i=1;;i++)

if(f(i)>n) break;

s=i;

for(i=2;i

for(i=2;i

for(j=i+1;j

if(f(i)+f(j)==n) {printf("YES");return 0;}

for(i=2;i

for(j=i+1;j

for(k=j+1;k

if(f(i)+f(j)+f(k)==n) {printf("YES");return 0;}

for(i=2;i

for(j=i+1;j

for(k=j+1;k

for(t=k+1;t

if(f(i)+f(j)+f(k)+f(t)==n) {printf("YES");return 0;}

for(i=2;i

for(j=i+1;j

for(k=j+1;k

for(t=k+1;t

for(p=t+1;p

if(f(i)+f(j)+f(k)+f(t)+f(p)==n) {printf("YES");return 0;}

for(i=2;i

for(j=i+1;j

for(k=j+1;k

for(t=k+1;t

for(p=t+1;p

for(q=p+1;q

if(f(i)+f(j)+f(k)+f(t)+f(p)+f(q)==n) {printf("YES");return 0;}

for(i=2;i

for(j=i+1;j

for(k=j+1;k

for(t=k+1;t

for(p=t+1;p

for(q=p+1;q

for(y=q+1;y

if(f(i)+f(j)+f(k)+f(t)+f(p)+f(q)+f(y)==n) {printf("YES");return 0;}

for(i=2;i

for(j=i+1;j

for(k=j+1;k

for(t=k+1;t

for(p=t+1;p

for(q=p+1;q

for(y=q+1;y

for(x=y+1;x

if(f(i)+f(j)+f(k)+f(t)+f(p)+f(q)+f(y)+f(x)==n) {printf("YES");return 0;}

printf("NO");

return 0;

}

76.解不等式

#include

#include

int main()

{

int a,b,j,x,y;

double s=0,n=0,i;

scanf("%d%d",&a,&b);

for(i=1;i<100000;i=i+1)

{

n=n*1.0+(1/i);

s=s*1.0+(1/n);

x=i;

if(s>a)

break;

}

printf("%d ",x);

for(j=x;j<100000;j++)

{

n=n*1.0+(1/j);

s=s*1.0+(1/n);

y=j;

if(s>b)

break;

}

printf("%d",y);

return 0;

}

77.精确幂乘

#include

#include

int main()

{

char a[10];

int n,b=0,c[250]={0},i,j,x,flag=0;

c[249]=1;

scanf("%s%d",a,&n);

for(i=0;a[i]!='\0';i++)

{

if(a[i]=='.')

{

x=i;

flag=1;

continue;

}

b=b*10+a[i]-'0';

}

x=i-x-1;

for(i=1;i

{

for(j=0;j<250;j++)

c[j]*=b;

for(j=249;j>=0;j--)

if(c[j]>=10)

{

c[j-1]+=c[j]/10;

c[j]%=10;

}

}

if(flag==0)

{

for(i=0;c[i]==0;i++);

for(;i<250;i++)

printf("%d",c[i]);

}

else if(a[0]=='0')

{

flag=0;

printf("0");

for(j=i;j<250;j++)

if(c[j]!=0)

{

flag=1;

break;

}

if(flag==1)

{

printf(".");

for(j=249;c[j]==0&&j>=i;j--);

for(i=250-n*x;i<=j;i++)

printf("%d",c[i]);

}

}

else

{

flag=0;

for(i=0;c[i]==0;i++);

for(;i<250-n*x;i++)

printf("%d",c[i]);

for(j=i;j<250;j++)

if(c[j]!=0)

{

flag=1;

break;

}

if(flag==1)

{

printf(".");

for(j=249;c[j]==0&&j>=i;j--);

for(;i<=j;i++)

printf("%d",c[i]);

}

}

printf("\n");

return 0;

}

78.恐怖水母

#include

#include

void paixu(int a[],int n)

{

int i,k,t;

for (i=1;i

t=a[i];k=i-1;

while(t

a[k+1]=a[k];

k--;

if(k==-1)break;

}

a[k+1]=t;

}

}

int main()

{

int a[100],b[100],n,m,i,j,s,h,q;

scanf("%d%d",&n,&m);

for(i=0;i

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

for(i=0;i

scanf("%d",&b[i]);

paixu(a,n);

paixu(b,m);

s=0;

for(i=0,h=-1;i

for(j=h+1;j

if(b[j]>=a[i]) {

s=s+b[j];

h=j;

q=2;

break;

}

}

if(q!=2) q=1;

}

if(q==1)printf("NULL");

else printf("%d",s);

return 0;

}

79.快速排序

#include

#include

void QuickSort(int a[],int numsize)

{

int i=0,j=numsize-1;

int val=a[0];

if(numsize>1)

{

while(i

{

for(;j>i;j--)

if(a[j]>val)

{

a[i++]=a[j];

break;

}

for(;i

if(a[i]

{

a[j--]=a[i];

break;

}

}

a[i]=val;

QuickSort(a,i);

QuickSort(a+i+1,numsize-i-1);

}

}

int main()

{

int n,b[99],a[99],s,m,i,l;

scanf("%d",&n);

for(i=0;i

scanf("%d",&b[i]);

scanf("%d%d",&s,&m);

for(i=s;i<=m;i++)

a[i-s]=b[i];

l=m-s+1;

QuickSort(a,l);

for(i=s;i<=m;i++)

b[i]=a[i-s];

for(i=0;i

printf("%d ",b[i]);

return 0;

}

80.粒子裂变

#include

#include

int main()

{

int t,n=1,m=0,a;

scanf("%d",&t);

while (t>0){

a=m;

m=3*n+2*m;

n=a;

t=t-1;

}

printf("%d %d",n,m);

return 0;

}

81.链表动态增长或缩短

#include

#include

int main()

{

int a[100],j,i,n;

scanf("%d",&n);

for(i=0;i

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

for(i=0;i

for(j=i+1;j

if(a[i]==a[j]) {a[i]=0;a[j]=0;}

for(i=0;i

if(a[i]!=0) printf("%d ",a[i]);

return 0;

}

82.链表节点删除

#include

#include

#include

int f=0;

struct tagxue{

int no,age;

char name;

};

typedef struct tagLNode{

struct tagxue data;

struct tagLNode *next;

}LNode,*LinkList;

int input(struct tagxue *l)

{

int n,m;

char a[11];

scanf("%d",&n);

if(n==0) {f=1;return 0;};

scanf("%s%d",a,&m);

l->age=m;

strcpy(&l->name,a);

l->no=n;

return 0;

}

void create(LinkList *l)

{

LinkList p,s;

int n;

p=*l=(LinkList)malloc(sizeof(LNode));

for(n=0;;n++){

s=(LinkList)malloc(sizeof(LNode));

input(&s->data);

if(f==1) break;

p->next=s,p=s;

}

p->next=NULL;

}

void list(LinkList l)

{

LinkList p=l->next;

while(p!=NULL){

printf("%d ",p->data.no);

p=p->next;

}

}

void shanchu(LinkList l,int n)

{

LinkList p=l->next;

while(p!=NULL){

if(p->next->data.no==n) break;

p=p->next;}

p->next=p->next->next;

}

int main()

{

LinkList q;

int m;

q=(LinkList)malloc(sizeof(LNode));

create(&q);

scanf("%d",&m);

list(q);

printf("\n");

shanchu(q,m);

list(q);

return 0;

}

83.两个整数之间所有的素数

#include

#include

int main()

{

int a,b,c,i,j,m;

scanf("%d%d",&a,&b);

if(a>b)

{

c=b;

b=a;

a=c;

}

for(i=a;i<=b;i++)

{

if(i==2)

printf("2");

else

{

for(j=2;j

{

m=i%j;

if(m==0)

goto E;

}

printf("%d ",i);

}

E:continue;

}

return 0;

}

84.路痴

#include

#include

#include

int main()

{

int a[100],i,n,left=0,right=0;

char c[5];

scanf("%s%d",c,&n);

for(i=0;i

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

for(i=0;i

if(a[i]==0) left++;

right=n-left;

n=right-left;

if(n>=0) n=n%4;

else n=4-(-n)%4;

if(c[0]=='E'){

if(n==0) printf("East");

if(n==1) printf("South");

if(n==2) printf("West");

if(n==3) printf("North");

}

if(c[0]=='S'){

if(n==3) printf("East");

if(n==0) printf("South");

if(n==1) printf("West");

if(n==2) printf("North");

}

if(c[0]=='W'){

if(n==2) printf("East");

if(n==3) printf("South");

if(n==0) printf("West");

if(n==1) printf("North");

}

if(c[0]=='N'){

if(n==1) printf("East");

if(n==2) printf("South");

if(n==3) printf("West");

if(n==0) printf("North");

}

return 0;

}

85.冒泡排序

#include

#include

void BubbleSort(int A[],int s,int m)

{

int i,j,k;

for(j=s;j

{

for(i=s;i

{

if(A[i]

{

k=A[i];

A[i]=A[i+1];

A[i+1]=k;

}

}

}

}

int main()

{

int a,b,c,A[100],d;

scanf("%d",&c);

for(d=0;d

scanf("%d",&A[d]);

scanf("%d%d",&a,&b);

BubbleSort(A,a,b);

for(d=0;d

printf("%d ",A[d]);

return 0;

}

86.你会存钱吗

#include

#include

int main()

{

int i8,i5,i3,i2,i1,n8,n5,n3,n2,n1;

float max=0,term;

for(i8=0;i8<3;i8++)

for(i5=0;i5<=(20-8*i8)/5;i5++)

for(i3=0;i3<=(20-8*i8-5*i5)/3;i3++)

for(i2=0;i2<=(20-8*i8-5*i5-3*i3)/2;i2++)

{

i1=20-8*i8-5*i5-3*i3-2*i2;

term=2000.0*pow((double)(1+0.0063*12), (double)i1)*pow((double)(1+2*0.0063*12), (double)i2)*pow((double)(1+3*0.0069*12),(double)i3)*pow((double)(1+5*0.0075*12),(double)i5)*pow((double)(1+8*0.0084*12),(double)i8);

if(term>max){ max=term; n1=i1; n2=i2; n3=i3; n5=i5; n8=i8; };

};

printf("%d %d %d %d %d\n",n8,n5,n3,n2,n1);

printf("%.2f",max);

return 0;

}

87.逆序整数

#include

int nixu(int n)

{

if(n>10) {

printf("%d",n%10);

nixu(n/10);

}

else{

printf("%d",n);

return 0;}

}

int main()

{

int n;

scanf("%d",&n);

nixu(n);

return 0;

}

88.排列

#include

#include

int main()

{

int a[9],n,b[3],s;

for(a[0]=1;a[0]<4;a[0]++)

for(a[1]=1;a[1]<10;a[1]++)

for(a[2]=2;a[2]<10;a[2]++)

for(a[3]=3;a[3]<7;a[3]++)

for(a[4]=3;a[4]<9;a[4]++)

for(a[5]=4;a[5]<9;a[5]++)

for(a[6]=5;a[6]<10;a[6]++)

for(a[7]=1;a[7]<9;a[7]++)

for(a[8]=1;a[8]<10;a[8]++){

s=0;

for (n=1;n<10;n++) if (a[0]==a[n]) {s=s+1;break;};

for (n=2;n<10;n++) {if(s>0) break;

if (a[1]==a[n]) {s=s+1;break;};};

for (n=3;n<10;n++) {if(s>0) break;

if (a[2]==a[n]) {s=s+1;break;};};

for (n=4;n<10;n++) {if(s>0) break;

if (a[3]==a[n]) {s=s+1;break;};};

for (n=5;n<10;n++) {if(s>0) break;

if (a[4]==a[n]) {s=s+1;break;};};

for (n=6;n<10;n++) {if(s>0) break;

if (a[5]==a[n]) {s=s+1;break;};};

for (n=7;n<10;n++) {if(s>0) break;

if (a[6]==a[n]) {s=s+1;break;};};

for (n=8;n<10;n++) {if(s>0) break;

if (a[7]==a[n]) {s=s+1;break;};};

if (s==0) {

b[0]=100*a[0]+10*a[1]+a[2];

b[1]=100*a[3]+10*a[4]+a[5];

b[2]=100*a[6]+10*a[7]+a[8];

if ((b[2]==3*b[0])&&(b[1]==2*b[0])) printf("%d %d %d\n",b[0],b[1],b[2]);

};

};

return 0;

}

89.排列分析

#include

#include

int main()

{

int n,i,j,k=0,t,A[100];

scanf("%d",&n);

for(i=0;i

scanf("%d",&A[i]);

for(i=0;i

{

for(j=0;j

if(A[j]>A[j+1])

{

t=A[j];

A[j]=A[j+1];

A[j+1]=t;

k++;

}

}

printf("%d",k);

return 0;

}

90.平均值函数

#include

#include

double avg(double A[99],double s,double e)

{

int i;

double f=0.0;

for(i=s;i<=e;i++)

f=f+A[i];

s=f/(e-s+1);

return s;

}

int main()

{

double A[99];

int n,s,e,i;

scanf("%d",&n);

for(i=0;i<=(n-1);i++)

scanf("%lf",&A[i]);

scanf("%d%d",&s,&e);

printf("%lf",avg(A,s,e));

return 0;

}

91.奇特的分数数列

#include

#include

int main()

{

double s,n,m,a,b;

n=1;

s=0;

m=2;

a=1;

while (a<=20) {

s=s+m/n;

b=m;

m=n+m;

n=b;

a=a+1;

}

printf("%.6lf",s);

return 0;

}

92.求建筑高度

#include

#include

int main()

{

double a,b,c,d,e,f;

scanf("%lf,%lf",&a,&b);

c=(a-2)*(a-2)+(b-2)*(b-2);

d=(a+2)*(a+2)+(b-2)*(b-2);

e=(a-2)*(a-2)+(b+2)*(b+2);

f=(a+2)*(a+2)+(b+2)*(b+2);

if(c<=1||d<=1||e<=1||f<=1)printf("10");

else printf("0");

return 0;

}

93.区间内素数

#include

#include

int main()

{

int a,b,c,n,m,d;

a=799;

d=1;

m=0;

n=0;

while (a>500&&a<800){

c=0;

b=a-1;

while (b>1){

if (a%b==0) c=c+1;

b=b-1;

};

if (c==0) {n=1+n;

m=m+d*a;

d=-1*d;

};

a=a-1;

}

printf("%d %d",n,m);

return 0;

}

94.三点顺序

#include

int main()

{

int x1,y1,x2,y2,x3,y3;

while(~scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3)&&(x1+y1+x2+y2+x3+y3))

{

if((x2-x1)*(y3-y1)-(x3-x1)*(y2-y1)>0){

printf("0\n");

return 0;}

else{

printf("1\n");

return 0;}

}

return 0;

}

95.山迪的麻烦

#include

#include

int main()

{

int n,s=0,a[100],i,j,k;

scanf("%d",&n);

for(i=0;i

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

for(i=1;i

k=a[i];

for(j=i-1;j>=0&&k

s++;

a[j+1]=a[j];

}

a[j+1]=k;

}

printf("%d",s);

return 0;

}

96.删除字符

#include

#include

#include

char b[1000];

void deletechar(char s[],char a)

{

int n,i,j=0,k;

n=strlen(s);

for(i=0;i

if(s[i]!=a) b[j]=s[i],j++;

else {

for(k=0;;k++) if(s[i+k]!=a) break;

b[j]=s[i+k];

i=i+k;

j++;

}

}

}

int main()

{

char s[1000],a;

int i,n;

gets(s);

n=strlen(s);

scanf("%c",&a);

deletechar(s,a);

for(i=0;i

printf("%c",b[i]);

return 0;

}

97.是该年的第几天

#include

#include

int main()

{

int y,m,d,days,i,sum=0;

scanf("%d-%d-%d",&y,&m,&d);

for(i=1;i

switch(i){

case 2:

days=28;

if((y%4==0&&y%100!=0)||(y%400==0))days++;

break;

case 4:case 6:case 9:case 11:days=30;break;

default:days=31;

}

sum+=days;

}

sum=sum+d;

printf("%d\n",sum);

return 0;

}

98.是该年的第几天?

#include

#include

int main()

{

int y,m,d;

scanf("%d-%d-%d",&y,&m,&d);

switch(m)

{

case 12:d=30+d;

case 11:d=31+d;

case 10:d=30+d;

case 9:d=31+d;

case 8:d=31+d;

case 7:d=30+d;

case 6:d=31+d;

case 5:d=30+d;

case 4:d=31+d;

case 3:d=28+d;

case 2:d=31+d;

default:d=d;

}

printf("%d",d);

return 0;

}

99.数据加密

#include

int main()

{

int n,a,b,c,d,m;

scanf("%d",&n);

a=n%10;

b=(n/10)%10;

c=(n/100)%10;

d=n/1000;

a=(a+5)%10;

b=(b+5)%10;

c=(c+5)%10;

d=(d+5)%10;

m=1000*a+100*b+10*c+d;

printf("%d",m);

return 0;

}

100.搜索字符

#include

#include

#include

int main()

{

char a[1000],c;

int i,j,k=0,h,n;

gets(a);

scanf("%c",&c);

n=strlen(a);

for(i=0;i

h=0;

if (a[i]==c){

for(j=i;;j++) {if(a[j]==c) h++,i++;

else break;}

};

if(h>k) k=h;

}

for(i=0;i

return 0;

}

101.所有素数

#include

#include

int main()

{

int a,b,c,d,n;

scanf("%d%d",&a,&b);

if (b>a) {

c=a;

a=b;

b=c;

} ;

n=b+1;

while (n>b&&n

d=n-1;

int e=0;

while (d>1) {

if ((n%d)==0)

e=e+1;

d=d-1;

} ;

if (e==0) printf("%d ",n);

n=n+1;

};

return 0;

}

102.探索合数世纪

#include

#include

int main()

{

int n,s,j=0,w,h,k,u=0,c=0;

scanf("%d",&n);

for(k=u;;k++){

for(s=k*100,h=1;s<=k*100+99;s++){

for(j=2,w=1;j<=sqrt(s);j++){

w=s%j;

if(w==0) break;

}

if(w!=0)

{ h=0;

break;}

}

if(h==1)

{ c=c+1;

if(c==n){

u=k;

break;}};

}

printf("%d %d\n",u*100,u*100+99);

return 0;

}

103.特殊要求的字符串

#include

#include

void paixu(char s[], int n)

{

int i,t,k;

for(i=1;i

t=s[i];k=i-1;

while(t>s[k]){

s[k+1]=s[k];k--;

if(k==-1)break;

}

s[k+1]=t;

}

}

void paixu2(char s[], int n)

{

int i,t,k;

for(i=n+1;i<2*n;i++){

t=s[i];k=i-1;

while(t

s[k+1]=s[k];k--;

if(k==n-1)break;

}

s[k+1]=t;

}

}

int main()

{

char s[100],a;

int n,i,k;

gets(s);

n=strlen(s);

if(n%2==0){

n=n/2;

paixu(s,n);

paixu2(s,n);

for(i=n;i<2*n;i++)

printf("%c",s[i]);

for(i=0;i

printf("%c",s[i]);

}

else{

k=(n-1)/2;

a=s[k];

for(i=k;i

s[i]=s[i+1];

n=k;

paixu(s,n);

paixu2(s,n);

for(i=n;i<2*n;i++)

printf("%c",s[i]);

printf("%c",a);

for(i=0;i

printf("%c",s[i]);

}

return 0;

}

104.特殊整数

#include

#include

#include

int main()

{

int m,n,x=1,y,i,j,a,b,c;

double s=0,g=0;

scanf("%d%d",&m,&n);

for(b=1;b

{

x=x*10;

}

y=10*x;

for(i=x;i

{

if(i%m==0)

continue;

for(j=0;j

{

int k=1;

for(c=1;c<=j;c++)

{

k=k*10;

}

a=(i/k)%10;

if(a==m)

goto love;

}

continue;

love:

{s=s+i;

g++;}

}

printf("%.0lf %.0lf",g,s);

return 0;

}

105.完全数

#include

#include

#include

int main()

{

int i,j;

for(i=1;i<=1000;i++)

{

int F[1000],m=0,n,a,X=0;

for(j=1;j

{

if(i%j==0)

{

m=m+1;

F[m]=j;

}

}

for(n=1;n<=m;n++)

X=X+F[n];

if(X==i)

{

printf("%d=",i);

for(a=1;a

printf("%d+",F[a]);

printf("%d\n",F[m]);

}

}

return 0;

}

106.王的对抗

#include

#include

void BubbleSort(int A[],int s,int m)

{

int i,j,k;

for(j=s;j

{

for(i=s;i

{

if(A[i]

{

k=A[i];

A[i]=A[i+1];

A[i+1]=k;

}

}

}

}

int main()

{

int n,A[100],B[100],i,x=0,y=0;

scanf("%d",&n);

for(i=0;i

scanf("%d",&A[i]);

for(i=0;i

scanf("%d",&B[i]);

BubbleSort(A,0,n);

BubbleSort(B,0,n);

for(i=0;i

{

if(A[i]>B[i])

x+=2;

if(A[i]==B[i])

x++,y++;

if(A[i]

y+=2;

}

if(x>y){

printf("A");

return 0;}

if(x==y){

printf("=");

return 0;}

if(x

printf("B");

return 0;}

return 0;

}

107.危险的组合

#include

#include

int main()

{

int n,m,b,c,d;

scanf("%d",&n);

m=3;

b=0;

while (m<=n){

if((n-m)==1) b=b+2;

if((n-m)==2) b=b+1;

if(n==m) b=b+1;

c=n-m-1;

d=0;

if (c>0){d=1;

while(c>0){

d=d*2;

c=c-1;

};

};

b=b+2*d;

c=n-m-2;

d=0;

if(c>0){d=1;

while(c>0){

d=d*2;

c=c-1;

};

};

b=b+(n-m-1)*d;

m=m+1;

};

printf("%d",b);

return 0;

}

108.文件比较

#include

#include

#include

int main()

{

char a[100][1000],b[100][1000];

FILE *p1,*p2;

int i=0,j=0,n;

p1=fopen("DATA5613.TXT","r");

p2=fopen("DATA5613.CPP","rb");

while(!feof(p1)){

if(fgets(a[i],99,p1)==NULL)continue;

i++;

}

i=0;

while(!feof(p2)){

if(fgets(b[i],99,p2)==NULL)continue;

i++;

}

n=i;

for(i=0;i

for(j=0;j

break;};

return 0;

}

109.文章统计

#include

#include

int main()

{

char a[80],b[80],c[80];

int i,d=0,x=0,s=0,k=0,q=0,n;

gets(a);

gets(b);

gets(c);

n=strlen(a);

for(i=0;i

if(a[i]<91&&a[i]>64) d++;

else if(a[i]>96&&a[i]<123) x++;

else if(a[i]>47&&a[i]<58) s++;

else if(a[i]==32) k++;

else q++;

n=strlen(b);

for(i=0;i

if(b[i]<91&&b[i]>64) d++;

else if(b[i]>96&&b[i]<123) x++;

else if(b[i]>47&&b[i]<58) s++;

else if(b[i]==32) k++;

else q++;

n=strlen(c);

for(i=0;i

if(c[i]<91&&c[i]>64) d++;

else if(c[i]>96&&c[i]<123) x++;

else if(c[i]>47&&c[i]<58) s++;

else if(c[i]==32) k++;

else q++;

printf("%d %d %d %d %d",d,x,s,k,q);

return 0;

}

110.五猴分桃

#include

#include

int main()

{

int a,i,n,f1,f2,f3,f4,f5,f6,m1,m2,m3,m4,m5,m6;

double F[6];

for(a=0;a<10000;a++)

{

F[1]=a;

for(i=2;i<7;i++)

{

n=i-1;

F[i]=(5*F[n])/4+1;

}

m1=F[1]*10;

m2=F[2]*10;

m3=F[3]*10;

m4=F[4]*10;

m5=F[5]*10;

m6=F[6]*10;

if(m1%10==0&&m2%10==0&&m3%10==0&&m4%10==0&&m5%10==0&&m6%10==0)

{

f1=F[1];

f2=F[2];

f3=F[3];

f4=F[4];

f5=F[5];

f6=F[6];

if(f1%4==0&&f2%4==0&&f3%4==0&&f4%4==0&&f5%4==0)

{

printf("%d %d",f6,a);

break;

}

}

else

continue;

}

return 0;

}

111.小型数据库

#include

#include

#include

struct student

{

int id;

char name[12];

int sco;

};

int main()

{

int n;

struct student stu, max;

FILE *fp;

scanf("%d", &n);

fp = fopen( "DATA5614.DB", "wb+" );

if( !fp )

printf("No!!!");

while( n-- )

{

scanf("%d%s%d", &stu.id, stu.name, &stu.sco );

fwrite( &stu, sizeof( struct student ), 1, fp );

}

rewind( fp );

max.sco = 0;

while( !feof(fp) )

{

fread( &stu, sizeof( struct student ), 1, fp );

if( stu.sco > max.sco )

{

max.id = stu.id;

max.sco = stu.sco;

strcpy( max.name, stu.name );

}

}

fclose( fp );

printf("%d %s %d", max.id, max.name, max.sco);

}

112.幸运儿

#include

#include

int cardNum[20] = {0};

int isLucky[51] = {0};

int childLeft,count;

void pickChild(int n,int x){

int i,j;

while(1){

for(i = 0;i < 20;++i){

count = 0;

for(j = 1;j <= n;++j){

count+=isLucky[j];

if(count==cardNum[i]){

isLucky[j] = 0;

if(x==--childLeft)return;

count = 0;

}}}}}

int main(){

int n,x,i;

scanf("%d%d",&n,&x);

for(i = 0; i < 20; ++i){

scanf("%d",cardNum + i);

}

for(i=1;i<=n;++i)isLucky[i]=1;

childLeft = n;

pickChild(n,x);

for(i=1;i<=n;i++) if(isLucky[i]==1) printf("%d ",i);

return 0;

}

113.幸运数字”7

#include

#include

int main()

{

int n,m=7,b;

scanf("%d",&n);

while (m<=n){

if ((m%7!=0)&&((m-7)%10!=0)) b=b+1;

else printf("%d ",m);

m=m+1;

};

return 0;

}

114.选择排序

#include

#include

void SectionSort(int a[],int s,int m)

{

int i,j,k,t;

for (i=s;i<=m;i++){

k=i;

for(j=i+1;j<=m;j++)

if(a[j]>a[k])k=j;

if(i!=k){

t=a[i];

a[i]=a[k];

a[k]=t;

}

}

}

int main()

{

int n,a[100],i,s,m;

scanf("%d",&n);

for(i=0;i

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

scanf("%d%d",&s,&m);

m=m+s-1;

SectionSort(a,s,m);

for(i=0;i

printf("%d ",a[i]);

return 0;

}

115.寻找规律

#include

#include

int main()

{

int a[100],i,j,n,k;

for(i=0;i<5;i++)

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

if(a[1]+a[0]==a[2]&&a[2]+a[3]==a[4]){

for(i=5;i<10;i++) a[i]=a[i-1]+a[i-2];

for(i=5;i<10;i++) printf("%d ",a[i]);

return 0;

}

if(a[1]-a[0]==a[2]-a[1]&&a[4]-a[3]==a[2]-a[1]){

k=a[1]-a[0];

n=a[4];

for(i=0;i<5;i++) n=n+k,printf("%d ",n);

return 0;

}

if(a[1]/a[0]==a[2]/a[1]&&a[4]/a[3]==a[2]/a[1]){

k=a[1]/a[0];

n=a[4];

for(i=0;i<5;i++) n=n*k,printf("%d ",n);

return 0;

}

return 0;

}

116.循环移位

#include

int move(int value,int n)

{

if(n==0) return value;

else if(n<0)

{

n=-n;

value=(value<>(32-n));

}

else value=(value>>n)|(value<<(32-n));

return value;

}

int main()

{

int value,n;

scanf("%d %d",&value,&n);

value=move(value,n);

printf("%d",value);

return 0;

}

117.延伸的卡片

#include

#include

int main()

{

float c,n=0;

double i=1;

scanf("%f",&c);

while(n

n=n+1/(i+1);

i++;

}

printf("%.0lf",i-1);

return 0;

}

118.羊羊聚会

#include

#include

#include

int main()

{

int x,y,a,b,l,m;

scanf("%d%d%d%d%d",&x,&y,&a,&b,&l);

a=fabs(a-b);

x=l-fabs(x-y);

for(m=0;;m++)

if ((x+m*l)%a==0) {printf("%d",((x+m*l)/a));

break;

};

return 0;

}

119.一维数组”赋值“

#include

#include

int main()

{

int a[100],b[100],n,i;

scanf("%d",&n);

for(i=0;i

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

for(i=0;i

b[i]=a[i];

for(i=1;i

printf("%d ",b[i]);

return 0;

}

120.一维数组”加法“

#include

#include

int main()

{

int A[100],B[100],i,n;

scanf("%d",&n);

for(i=0;i

scanf("%d",&A[i]);

for(i=0;i

scanf("%d",&B[i]);

for(i=0;i

printf("%d ",A[i]+B[i]);

return 0;

}

121.勇闯天涯

#include

int main()

{

int i,j,k=0,h,n,m,a[100],t,o=0,q;

scanf("%d",&m);

scanf("%d",&n);

for(i=0;i

for(i=0;i

for(j=0;j

if(a[j]

for(i=0;i

q=0;

for(j=i+1;j

if(a[i]+a[j]<=m) {k++;o++;q++;

for(h=j;h

break;

};

if(q==0) k++;

}

printf("%d",k);

return 0;

}

122.右上角

#include

#include

int main()

{

int n,i,j;

scanf("%d",&n);

int a[n][n];

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

for(j=0;j

printf(" ");

for(j=i;j

printf("%d ",a[i][j]);

printf("\n");

}

return 0;

}

123.右下角

#include

#include

int main()

{

int n,i,j;

scanf("%d",&n);

int a[n][n];

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

for(j=i;j

printf(" ");

for(j=n-i-1;j

printf("%d ",a[i][j]);

printf("\n");

}

return 0;

}

124.圆及圆球等的相关计算

#include

#include

#include

#define PI 3.1415926

int main()

{

double r,h,l,s,sq,vq,vz;

scanf("%lf%lf",&r,&h);

l=2.0*PI*r;

s=PI*r*r;

sq=4.0*PI*r*r;

vq=(4.0*PI*r*r*r)/3.0;

vz=PI*r*r*h;

printf("%.2lf\n%.2lf\n%.2lf\n%.2lf\n%.2lf\n",l,s,sq,vq,vz);

return 0;

}

125.圆及圆球等相关计算

#include

#include

#define PI 3.1415927

int main()

{

double r,h,l,s,sq,vq,vz;

scanf("%lf%lf",&r,&h);

l=2.0*PI*r;

s=PI*r*r;

sq=4.0*PI*r*r;

vq=(4.0/3.0)*PI*r*r*r;

vz=PI*r*r*h;

printf("%.2lf\n%.2lf\n%.2lf\n%.2lf\n%.2lf\n",l,s,sq,vq,vz);

return 0;

}

126.程序员添加行号

#include

#include

#include

int main()

{

FILE *fp = fopen("DATA5612.CPP", "r"),*out;

int i=0;

char s1[100],s2[100];

if(fp!=NULL){

out=fopen("DATA5612.TXT","w");

while(!feof(fp)){

if(fgets(s1,sizeof(s1)-1,fp)==NULL) continue;

sprintf(s2,"%04d %s",++i,s1);

fputs(s2,out);

}

fclose(out);

fclose(fp);

}

return 0;

}

127.找出数字

#include

#include

#include

int main()

{

char c[80],b[80];

int n,i,s=0,k,h=0;

gets(c);

n=strlen(c);

for(i=0;i

if (c[i]<=57&&c[i]>=48) {

s++;

for(k=i;;k++){

if(c[k]<=57&&c[k]>=48){

i++;

b[h]=c[k];

h++;

}

else { b[h]=32;

h++;

break;}

}

}

}

printf("%d\n",s);

for(i=0;i

return 0;

}

128.找幸运数

#include

#include

int main()

{

int a,b,c,d,e,m,n;

scanf("%d",&m);

a=m%10;

b=((m-a)%100)/10;

c=((m-a-10*b)%1000)/100;

d=((m-a-10*b-100*c)%10000)/1000;

e=((m-a-10*b-100*c-1000*d)%100000)/10000;

if(e==0)

{

if(d==0)

{

if(c==0)

{

if(b==0)

{

if(a==0)

n=0;

else

n=a;

}

else

n=10*a+b;

}

else

n=100*a+10*b+c;

}

else

n=1000*a+100*b+10*c+d;

}

else

{

n=10000*a+1000*b+100*c+10*d+e;

}

if(m==n)

{

printf("yes");

}

else

{

printf("no");

}

return 0;

}

129.找最大数

#include

#include

#include

int main()

{

int a,b,c;

scanf("%d%d%d",&a,&b,&c);

if(a

{

a=b;

if(a

{

a=c;

}

}

else

{

if(a

{

a=c;

}

}

printf("%d",a);

return 0;

}

130.整数位数

#include

#include

#include

int main()

{

double a;

int m,d,c,n;

scanf("%lf",&a);

a=fabs(a);

n=(int)a;

m=0;

d=1;

if (n<1) {printf("0");

return 0;};

do{

d=d*10;

c=n-d;

m=m+1;

}while(c>0);

printf("%d",m);

return 0;

}

131.重组字符串

#include

#include

#include

int h;

void fun(char s[],char *p)

{

int i,j=0,t;

for(i=1;i

t=s[i];

if(t%2!=0) {

p[j]=s[i];j++;

}}

h=j;

}

int main()

{

char s[100],p[100],*a;

int i;

a=p;

gets(s);

fun(s,a);

for(i=0;i

printf("%c",p[i]);

return 0;

}

132.子序列的和

#include

#include

#include

int main()

{

int n,m,i;

double sum=0;

scanf("%d %d",&n,&m);

for(i=n;i<=m;i++){

sum=sum+1/pow(i,2.0);

}

printf("%.5lf",sum);

return 0;

}

133.子字符串替换

#include

#include

#include

int main()

{

char s[100],a[100],b[100],t[100];

int m,i,j,k,h=0,o=0;

gets(s);

gets(a);

gets(b);

for(i=0;i

m=0;

k=0;

for(j=0;j

if(s[i]==a[j]) {i++;m++;}

i=i-m;

if(m==strlen(a)){

for(h=i+o;h

k++;}

i=i+m-1;

o++;}

else {t[h]=s[i];h++;};

}

for(i=0;i

printf("%c",t[i]);

return 0;

}

134.自然数立方的乐趣

#include

#include

int main()

{

int n,m,i,j,k;

scanf("%d",&n);

j=n*n*n;

printf("%d*%d*%d=%d=",n,n,n,j);

if(n%2==0)

{

m=n*n;

k=n/2;

m=m-(2*k)+1;

for(i=1;i

{

printf("%d+",m);

m=m+2;

}

printf("%d",m);

}

else

{

m=n*n;

k=n/2;

m=m-(2*k);

for(i=1;i

{

printf("%d+",m);

m=m+2;

}

printf("%d",m);

}

return 0;

}

135.字符串比较

#include

#include

void bijiao(char *a,char *b)

{

int i;

for(i=0;i<=80;i++)

if (a[i]!=b[i]){

printf("%d",a[i]-b[i]);

break;

}

}

int main()

{

char a[80],b[80];

gets(a);

gets(b);

bijiao(a,b);

return 0;

}

136.字符串复制

#include

#include

int main()

{

char A[99];

int i=0,j,a;

while((A[i]=getchar())!='\n')i++;

scanf("%d",&a);

for(j=a;j

printf("%c",A[j]);

return 0;

}

137.字符串加密编码

#include

#include

#include

void jiami(char s[100])

{

int i;

for(i=0;i

if(s[i]>='A'&&s[i]<='Z') s[i]=s[i]+3;

if(s[i]>='a'&&s[i]<='z') s[i]=s[i]-3;

}

}

int main()

{

char s[100];

gets(s);

jiami(s);

puts(s);

return 0;

}

138.字符串逆序

#include

#include

#include

int main()

{

char A[100],B[100];

int i=0,j;

while((A[i]=getchar())!='=')i++;

for(j=i-1;j>-1;j--)

printf("%c",A[j]);

return 0;

}

139.字符串排序

#include

#include

#include

int main()

{

char s[10][80],b[10][80];

int i,k,j;

for(i=0;i<10;i++) scanf("%s",s[i]);

for(i=0;i<10;i++){

k=0;

for(j=0;j<10;j++)

if (strcmp(s[i],s[j])>0) k++;

strcpy(b[k],s[i]);}

for(i=0;i<10;i++) printf("%s ",b[i]);

return 0;

}

140.字符串替换

#include

#include

#include

int main()

{

char s[1000],b[1000];

int i,n,h=0;

gets(s);

n=strlen(s);

for(i=0;i

if(s[i]==121&&s[i+1]==111&&s[i+2]==117){

b[h]=119;b[h+1]=101;h=h+2;i=i+2;

}

else {

b[h]=s[i];h++;

};

}

for(i=0;i

return 0;

}

141.字符串左中右

#include

#include

void Left(char str[],int n,char dest[])

{

int i;

for(i=0;i

dest[i]=str[i];

}

void Right(char str[],int n,char dest[])

{

int i,m,j=0;

m=strlen(str);

for(i=m-n;i<=m;i++){

dest[j]=str[i];

j++;

}

}

void Mid(char str[],int loc,int n,char dest[])

{

int i,j=0;

for(i=loc;i

dest[j]=str[i];

j++;

}

}

int main()

{

int n,i,loc;

char str[81],dest[81];

gets(str);

scanf("%d%d",&n,&loc);

Left(str,n,dest);

for(i=0;i

printf("%c",dest[i]);

printf("\n");

Right(str,n,dest);

puts(dest);

Mid(str,loc,n,dest);

puts(dest);

return 0;

}

142.组合数

#include

int jie(int n)

{

if(n>1) return jie(n-1)*n;

return 1;

}

int zuhe(int n,int m)

{

int i;

i=jie(n-m);

n=jie(n);

m=jie(m);

n=n/(m*i);

return n;

}

int main()

{

int n,m;

scanf("%d%d",&n,&m);

printf("%d",zuhe(n,m));

return 0;

}

143.最次方数

#include

#include

int main()

{

int a,b,c;

scanf("%d%d",&a,&b);

c=1;

while (b>0){

c=c*a;

c=c%1000;

b=b-1;

};

printf("%d",c);

return 0;

}

144.最大乘积

#include

#include

int main()

{

int a[20],s=1,n,m,i=1,j=1,b,e,f;

scanf("%d",&n);

m=n;

for(n=0;n

scanf("%d",&a[n]);

if (m==1) {

if (a[0]<0) printf("-1");

else printf("%d",a[0]);

return 0;

};

if (m==2) {

if ((a[0]<0)&&(a[1]<0)) printf("%d",(a[0]*a[1]));

else if ((a[0]>0)&&a[1]>0) printf("%d",(a[0]*a[1]));

else if (a[0]>a[1]) printf("%d",a[0]);

else printf("%d",a[1]);

return 0;

};

b=0;

for (n=0;n

if (a[n]<0) b=b+1;

if (b%2==0) {

for (n=0;n

s=s*a[n];

printf("%d",s);

return 0;

}

else {

for (n=0;n

if (a[n]<0) {

e=n;

break;

};

for (n=m-1;n>=0;n--)

if (a[n]<0) {

f=n;

break;

};

for (n=e+1;n

i=i*a[n];

for (n=f-1;n>=0;n--)

j=j*a[n];

if (i>j) s=i;

else s=j;

printf("%d",s);

};

return 0;

}

145.最大整数

#include

#include

int n;

double getfloor(double m)

{

n=m;

if(n!=m&&n<0)

n--;

return n;

}

int main()

{

int a;

double x;

scanf("%lf",&x);

a=getfloor(x);

printf("%d",a);

return 0;

}

146.最小整数

#include

#include

#include

int fceil(double x)

{

if (x>0)

x=((int)x)+1;

else x=(int)x;

return x;

}

int main()

{

double x;

int n;

scanf("%lf",&x);

n=fceil(x);

printf("%d",n);

return 0;

}

147.最长回文子串

#include

#include

#include

#include

int main()

{

char a[5000],b[5000],i,j=0,c[5000],p=0,h,s;

gets(a);

for(i=0;i

if(a[i]>=48&&a[i]<=57) b[j]=a[i],j++;

if(a[i]>=65&&a[i]<=90) b[j]=a[i],j++;

if(a[i]>=97&&a[i]<=122) b[j]=a[i],j++;

}

for(i=1;i

h=0;

if(b[i]==b[i+1]){

for(j=1;i-j+1>=0&&i+j

else break;

}

if(h>p) {p=h;for(s=i-j+2;s

h=0;

if(b[i-1]==b[i+1]) {

for(j=1;i-j>=0&&i+j

else break;

}

if(h>p) {p=h;for(s=i-j+1;s

}

for(i=0;i

if(a[i]==c[0]) break;

for(j=strlen(a);j>0;j--)

if(a[j]==c[strlen(c)-1]) break;

for(s=i;s<=j;s++) printf("%c",a[s]);

return 0;

}

148.左上角

#include

#include

int main()

{

int A[100][100],n,i,j;

scanf("%d",&n);

for(i=0;i

{

for(j=0;j

scanf("%d",&A[i][j]);

}

int x=0;

for(j=0;j

{

for(i=0;i

printf("%d ",A[j][i]);

for(i=0;i

printf(" ");

printf("\n");

x++;

}

return 0;

}

149.左下角

#include

#include

int main()

{

int n,i,j;

scanf("%d",&n);

int a[n][n];

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

for(j=0;j<=i;j++)

printf("%d ",a[i][j]);

for(j=i+1;j

printf(" ");

printf("\n");

}

return 0;

}

本文来源:https://www.2haoxitong.net/k/doc/d5ff97bc87c24028905fc304.html

《西工大noj答案完整版.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式