浙大版《C语言程序设计(第3版)》题目集
Keep_Trying_Go
无
展开
-
习题9-5 通讯录排序 (20 分)
#include<stdio.h>#include<math.h>#include<string.h>#define maxx 1005int n;struct node{ char name[maxx]; int id; char number[maxx];};int main(){ int n; scanf("%d",&n); struct node num[maxx]; for(int i=0;i<n;i++){ sca原创 2021-03-29 07:36:13 · 125 阅读 · 0 评论 -
习题9-4 查找书籍 (20 分)
#include<stdio.h>#include<math.h>#include<string.h>#define maxx 1005int n;struct node{ double cost; char s[maxx];}num[maxx];int main(){ int n; scanf("%d",&n); int max=0; int min=0; for(int i=0;i<n;i++){ getchar();原创 2021-03-29 07:36:20 · 111 阅读 · 0 评论 -
习题9-3 平面向量加法 (15 分)
#include<stdio.h>#include<math.h>#include<string.h>#define maxx 1005int n;int main(){ double x,y; double x1,y1; scanf("%lf %lf %lf %lf",&x,&y,&x1,&y1); double x2=x+x1; double y2=y+y1; if(fabs(x2)<0.05)x2=fabs原创 2021-03-29 07:36:28 · 143 阅读 · 0 评论 -
习题9-1 时间换算 (15 分)
#include<stdio.h>#include<math.h>#include<string.h>#define maxx 1005int n;int main(){ int h,m,s; scanf("%d:%d:%d",&h,&m,&s); int second; scanf("%d",&second); int m1=(second+s)/60; int st=(second+s)%60; int ht=(原创 2021-03-29 07:36:35 · 110 阅读 · 0 评论 -
习题8-10 输出学生成绩 (20 分)
#include<stdio.h>#include<math.h>#include<string.h>#define maxx 1005int n;struct node{ double scores;}num[maxx];int main(){ int n; scanf("%d",&n); double max=0; double min=101; for(int i=0;i<n;i++){ scanf("%lf"原创 2021-03-29 07:36:44 · 160 阅读 · 0 评论 -
习题8-7 字符串排序 (20 分)
#include<stdio.h>#include<math.h>#include<string.h>#define maxx 105int n;int main(){ char s[maxx][maxx]; for(int i=0;i<5;i++){ scanf("%s",&s[i]); } char temp[maxx]; for(int i=0;i<5;i++){ for(int j=i+1;j<原创 2021-03-29 07:36:51 · 113 阅读 · 0 评论 -
习题7-6 统计大写辅音字母 (15 分)
方法一:#include<stdio.h>#include<math.h>#include<string.h>#define maxx 105int n;int main(){ char s[maxx]; int n,m; int b[maxx]; while(gets(s)){ int count=0; int len=strlen(s); for(int i=0;i<len;i++){ if(s[i]>='A'&原创 2021-03-29 07:36:58 · 100 阅读 · 0 评论 -
习题7-5 找鞍点 (20 分)
#include<stdio.h>#include<math.h>#define maxx 105int n;int main(){ int a[maxx][maxx]; int n,m; int b[maxx]; while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ scanf("%d",&a[i][j]); } }原创 2021-03-29 07:37:05 · 194 阅读 · 0 评论 -
习题7-4 求矩阵各行元素之和 (15 分)
#include<stdio.h>#include<math.h>#define maxx 105int n;int main(){ int a[maxx][maxx]; int n,m; while(scanf("%d %d",&n,&m)!=EOF){ for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ scanf("%d",&a[i][j]); } } for(原创 2021-03-30 00:03:04 · 151 阅读 · 0 评论 -
习题7-3 判断上三角矩阵 (15 分)
#include<stdio.h>#include<math.h>#define maxx 105int n;int main(){ int a[maxx][maxx]; int t; scanf("%d",&t); while(t--){ scanf("%d",&n); for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ scanf("%d",&a[i][j]); }原创 2021-03-30 00:03:20 · 123 阅读 · 0 评论 -
习题7-2 求一批整数中出现最多的个位数字 (20 分)
#include<stdio.h>#include<math.h>#define maxx 105int n;int main(){ int p[maxx]; for(int i=0;i<=10;i++){ p[i]=0; } scanf("%d",&n); for(int i=0;i<n;i++){ int x; scanf("%d",&x); while(x!=0){ int digit=x%10; p[d原创 2021-03-30 00:03:30 · 69 阅读 · 0 评论 -
习题7-1 选择法排序 (20 分)
方法一:直接插入排序#include<stdio.h>#include<math.h>#include<string.h>int main(){ int a[105]; int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i]); } for(int i=1;i<n;i++){ int temp=a[i]; int j=i; while(j&g原创 2021-03-30 00:07:42 · 360 阅读 · 0 评论 -
练习7-11 字符串逆序 (15 分)
#include<stdio.h>#include<math.h>#include<string.h>int main(){ char s[105]; while(gets(s)){ int len=strlen(s); for(int i=len-1;i>=0;i--){ printf("%c",s[i]); } printf("\n"); } return 0;}原创 2021-03-30 00:07:56 · 552 阅读 · 0 评论 -
练习7-10 查找指定字符 (15 分)
#include<stdio.h>#include<math.h>#include<string.h>int main(){ int index=0; char s[105]; char ch; scanf("%c",&ch); getchar(); gets(s); int flag=0; for(int i=0;s[i]!='\0';i++){ if(s[i]==ch){ index=i; flag=1; } }原创 2021-03-28 08:34:40 · 105 阅读 · 0 评论 -
练习7-9 计算天数 (15 分)
#include<stdio.h>#include<math.h>#include<string.h>int lineyear(int n){ if((n%4==0&&n%100!=0)||(n%400==0)){ return 1; }else{ return 0; }}int main(){ int month[13]={0,31,28,31,30,31,30,31,31,30,31,30}; int b[105][105]原创 2021-03-28 08:34:48 · 155 阅读 · 0 评论 -
练习7-8 方阵循环右移 (20 分)
#include<stdio.h>#include<math.h>#include<string.h>int main(){ int a[105][105]; int b[105][105]; int n,m; scanf("%d %d",&n,&m); int index=0; int sum=0; for(int i=0;i<m;i++){ for(int j=0;j<m;j++){ scanf("%d",&a原创 2021-03-28 08:34:57 · 81 阅读 · 0 评论 -
练习7-7 矩阵运算 (20 分)
#include<stdio.h>#include<math.h>#include<string.h>int main(){ int a[105][105]; int b[105]; int n,m; scanf("%d",&n); int index=0; int sum=0; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ scanf("%d",&a[i][j]);原创 2021-03-28 08:35:06 · 152 阅读 · 0 评论 -
练习7-4 找出不是两个数组共有的元素 (20 分)
#include<stdio.h>#include<math.h>#include<string.h>int main(){ int a[105]; int b[105]; int n,m; scanf("%d",&n); int index=0; for(int i=0;i<n;i++){ scanf("%d",&a[i]); } scanf("%d",&m); for(int i=0;i<m;i++){原创 2021-03-28 08:35:15 · 201 阅读 · 0 评论 -
练习7-3 将数组中的数逆序存放 (20 分)
#include<stdio.h>#include<math.h>#include<string.h>int main(){ int a[105]; int n; while(scanf("%d",&n)!=EOF){ int index=0; for(int i=0;i<n;i++){ scanf("%d",&a[i]); } for(int i=n-1;i>0;i--){ printf("%d ",a原创 2021-03-28 08:35:22 · 318 阅读 · 0 评论 -
练习7-2 求最大值及其下标 (20 分)
#include<stdio.h>#include<math.h>#include<string.h>int main(){ int a[105]; int n; while(scanf("%d",&n)!=EOF){ int index=0; for(int i=0;i<n;i++){ scanf("%d",&a[i]); } int max=a[0]; for(int i=1;i<n;i++){原创 2021-03-28 08:35:31 · 126 阅读 · 0 评论 -
习题6-8 统计一行文本的单词个数 (15 分)
#include<stdio.h>#include<math.h>#include<string.h>int main(){ char s[1005]; while(gets(s)){ int len=strlen(s); int count=0; int i=0; while(s[i]==' '){ i++; } while(s[i]!='\0'){ if(s[i]!=' '){ count++; while原创 2021-03-28 08:36:21 · 136 阅读 · 0 评论 -
习题6-7 简单计算器 (20 分)
#include<stdio.h>#include<math.h>int main(){ char ch; int temp1=0; int sum=0; int flag=1; scanf("%d",&sum); while(scanf("%c",&ch)!=EOF){ if(ch=='=')break; scanf("%d",&temp1); if(ch=='+'){ sum+=temp1; }else if(ch==原创 2021-03-30 00:08:07 · 181 阅读 · 0 评论 -
习题4-11 兔子繁衍问题 (15 分)
满足斐波那契数列:1 1 2 3 5 8 ……#include<stdio.h>#include<math.h>int main(){ int n; scanf("%d",&n); int fib[105]; fib[0]=1;fib[1]=1; if(n==1){ printf("1\n"); }else{ for(int i=2;i<=105;i++){ fib[i]=fib[i-1]+fib[i-2]; if(fib[i]&g原创 2021-03-27 10:36:58 · 194 阅读 · 0 评论 -
习题4-10 猴子吃桃问题 (15 分)
#include<stdio.h>#include<math.h>int main(){ int n; scanf("%d",&n); int sum=1; for(int i=1;i<=n-1;i++){ sum=(sum+1)*2; } printf("%d\n",sum); return 0;}原创 2021-03-27 10:29:54 · 195 阅读 · 0 评论 -
习题4-8 高空坠球 (20 分)
#include<stdio.h>#include<math.h>int main(){ double dist=0; double h; int n; double h_end=0; while(scanf("%lf %d",&h,&n)!=EOF){ if(n==0){ printf("0.0 0.0\n"); }else{ for(int i=0;i<n;i++){ dist+=h; h/=2; d原创 2021-03-27 06:33:35 · 227 阅读 · 0 评论 -
2021-03-26习题4-7 最大公约数和最小公倍数 (15 分)
方法一:#include<stdio.h>#include<math.h>int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int main(){ int n,m; while(scanf("%d %d",&n,&m)!=EOF){ int G=gcd(n,m); int t=n*m; printf("%d %d\n",G,t/G); } return 0;}//方法二:#原创 2021-03-27 06:33:15 · 226 阅读 · 0 评论 -
习题4-6 水仙花数 (20 分)
#include <stdio.h>int narcissistic( int number );void PrintN(int n );int main(){ int n; scanf("%d",&n); PrintN(n); return 0;}int narcissistic( int number ){ int len=0; int x=number; while(x!=0){ len++; x/=10; } in原创 2021-03-27 06:33:47 · 73 阅读 · 0 评论 -
习题4-5 换硬币 (20 分)
#include<stdio.h>#include<math.h>#define maxx 1005int main(){ int n; while(scanf("%d",&n)!=EOF){ int count=0; int total=0; for(int i=n/5;i>=1;i--){ for(int j=n/2;j>=1;j--){ for(int k=n;k>=1;k--){ if(5*i+j*2+k原创 2021-03-27 06:33:58 · 100 阅读 · 0 评论 -
习题4-4 特殊a串数列求和 (20 分)
#include<stdio.h>#include<math.h>#define maxx 1005int main(){ int n,m; scanf("%d %d",&n,&m); int a[maxx]; int flag=0; int t=m; int b=0; if(n==0||m==0){ printf("0\n"); }else{ for(int i=1;i<=m;i++){ a[i]=n*t+b; b=0原创 2021-03-26 08:01:01 · 96 阅读 · 0 评论 -
习题4-3 求分数序列前N项和 (15 分)
#include<stdio.h>#include<math.h>#define esp 1e-5int main(){ int x; while(scanf("%d",&x)!=EOF){ double sum=0; double a1=2,a2=1; for(int i=0;i<x;i++){ sum+=a1/a2; double temp=a1;原创 2021-03-26 08:01:10 · 163 阅读 · 0 评论 -
习题4-2 求幂级数展开的部分和 (20 分)
#include<stdio.h>#include<math.h>#define esp 1e-5int vis[505];double fact(int n){ double facts=1; for(int i=1;i<=n;i++){ facts*=i; } return facts;}int main(){ double x; while(scanf("%lf",&x)!=EOF){ double sum=1;原创 2021-03-26 08:01:20 · 105 阅读 · 0 评论 -
习题4-1 求奇数和 (15 分)
#include<stdio.h>#include<math.h>int vis[505];int main(){ int n,m; int sum=0; while(scanf("%d",&n)){ if(n<=0)break; if(n&1){ sum+=n; } } printf("%d\n",sum); return 0;}原创 2021-03-26 08:01:55 · 125 阅读 · 0 评论 -
练习4-11 统计素数并求和 (20 分)
#include<stdio.h>#include<math.h>int vis[505];//求素数打表void prime(){ vis[0]=vis[1]=1; for(int i=2;i<=505;i++){ if(vis[i]==0){ for(int j=2*i;j<=505;j+=i){ vis[j]=1; } } }}int main(){ int n,m; prime(); scanf("%原创 2021-03-26 08:02:07 · 106 阅读 · 0 评论 -
练习4-10 找出最小值 (20 分)
#include<stdio.h>#include<math.h>int main(){ int n; scanf("%d",&n); int x; int min=99999; for(int i=0;i<n;i++){ scanf("%d",&x); if(x<min){ min=x; } } printf("min = %d\n",min); return 0;}原创 2021-03-26 08:02:16 · 90 阅读 · 0 评论 -
练习4-7 求e的近似值 (15 分)
#include<stdio.h>#include<math.h>double fact(int n){ double facts=1; for(int i=1;i<=n;i++){ facts*=i; } return facts;}int main(){ int n; while(scanf("%d",&n)!=EOF){ double sum=1; for(int i=1;i<=n;i++){ s原创 2021-03-26 08:03:31 · 80 阅读 · 0 评论 -
练习4-6 猜数字游戏 (15 分)
#include<stdio.h>#include<math.h>int main(){ int n; int item; scanf("%d %d",&item,&n); int flag=0; for(int i=1;i<=n;i++){ int x; scanf("%d",&x); if(x<0){ break; }else if(x>item){ printf("Too big\n");原创 2021-03-26 08:03:41 · 204 阅读 · 0 评论 -
练习4-3 求给定精度的简单交错序列部分和 (15 分)
#include<stdio.h>#include<math.h>int main(){ double esp; while(scanf("%lf",&esp)!=EOF){ double sum=0; int d=1; int sign=1; for(int i=1;;i++){ sum+=1*1.0*sign/d; d+=3; sign=-sign; if(1*1.0/d<esp){ break; }原创 2021-03-27 06:34:36 · 77 阅读 · 0 评论 -
习题3-5 三角形判断 (15 分)
任意两边之和大于第三边就可以构成三角形:面积计算:计算出余弦:cos=(a* a+b* b-c* c)/(2* a* b),正弦sin=sqrt(1-cos *cos);A=1/2 *a *b *sin#include<stdio.h>#include<math.h>struct node{ double x,y;}num[105];double dist(int i,int j){ double x=num[i].x-num[j].x; double y=num[原创 2021-03-25 14:36:15 · 164 阅读 · 0 评论 -
习题3-4 统计学生成绩 (15 分)
#include<stdio.h>#include<math.h>int main(){ int n; int vis[1005]; for(int i=0;i<=1005;i++){ vis[i]=0; } scanf("%d",&n); int num1=0; int num2=0; for(int i=0;i<n;i++){ int s; scanf("%d",&s); int grade=s/10; vis原创 2021-03-25 14:10:57 · 173 阅读 · 0 评论 -
习题3-3 出租车计价 (15 分)
注意输出精度问题:#include<stdio.h>#include<math.h>int main(){ double dist; int minute; while(scanf("%lf %d",&dist,&minute)!=EOF){ if(dist<=3){ printf("%.lf\n",(10.0+minute/5*2)); }else if(dist<=10&&dist>3){ prin原创 2021-03-25 14:01:19 · 252 阅读 · 0 评论