当前位置: 首页 > news >正文

实验5 数组

1、利用筛法求指定范围之内的素数

【问题描述】:

使用筛法求指定范围[1,n]之间的素数。输出时每行显示10个数据。(每行最后一个数据后不输出空格)

n为正整数,且0<n<=1000.


【输入形式】:一个正整数:n

【输出形式】:一行输出10个数,中间空格隔开,每行最后一个数据后不输出空格

【样例输入】:100

【样例输出】:

2 3 5 7 11 13 17 19 23 29

31 37 41 43 47 53 59 61 67 71

73 79 83 89 97

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{int i,j,n,m=0;int a[1000];scanf("%d",&n);for(i=2;i<=n;i++){a[i]=0;}for(i=2;i<=n;i++){for(j=2;j<=(int)sqrt((double)i+1);j++){if(i%j==0){a[i]=1;}}}for(i=2;i<=n;i++){if(a[i]==0){printf("%d ",i);m++;if(m%10==0){printf("\n");}}}printf("\n");return 0;
}

2、学生成绩统计与分析

【问题描述】:从键盘输入一个班(全班最多不超过30人)学生某课程的成绩,当输入成绩为负值或超出规定人数时,输入结束,分别实现下列功能: (1)输出各分数段的学生人数及所占的百分比,并打印不及格学生名单; (2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生名单;

【输入形式】:依次输入各个学生的分数,当输入负数或超过30人时结束

【输出形式】:

输出不及格学生名单

输出高于平均分学生名单

输出高于平均分的学生人数

输出各个分数段的学生人数及所占比例

注意:所有实数保留小数点后两位数,即以%.2f格式输出


【样例输入】:

10 20 30 40 50 60 70 80 90 100 100 99 98 76 79.6 54.3 67.9 12.4 56.0 65.9 78.1 -1


【样例输出】:

<60:

student1,10.00

student2,20.00

student3,30.00

student4,40.00

student5,50.00

student16,54.30

student18,12.40

student19,56.00

higher than average:

student7,70.00

student8,80.00

student9,90.00

student10,100.00

student11,100.00

student12,99.00

student13,98.00

student14,76.00

student15,79.60

student17,67.90

student20,65.90

student21,78.10

higher than average:12

[0,60):8,percentage:38.10%

[60,70):3,percentage:14.29%

[70,80):4,percentage:19.05%

[80,90):1,percentage:4.76%

[90,100):3,percentage:14.29%

100:2,percentage:9.52%

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{int high[30],low[30];int n=0,i,a=0,b=0,c=0,d=0,e=0,f=0,s=0,x=0,y=0;double score[30],aver,sum=0;while(1){scanf("%lf",&score[n]);if(score[n]<0||n>30){break;}sum+=score[n];n++;}aver=sum/n;for(i=0;i<n;i++){if(score[i]>=aver){high[s]=i;s++;}if(score[i]<60){low[a]=i;a++;}else if(score[i]<70){ b++;}else if(score[i]<80){ c++;}else if(score[i]<90){ d++;}else if(score[i]<100){ e++;}else{f++;}}printf("<60:\n");for(i=0;i<a;i++){x=low[i];printf("student%d,%.2f\n",low[i]+1,score[x]);}printf("higher than average:\n");for(i=0;i<s;i++){y=high[i];printf("student%d,%.2f\n",high[i]+1,score[y]);}printf("higher than average:%d\n",i);printf("[0,60):%d,percentage:%.2f%%\n",a,a*100.0/n);printf("[60,70):%d,percentage:%.2f%%\n",b,b*100.0/n);printf("[70,80):%d,percentage:%.2f%%\n",c,c*100.0/n);printf("[80,90):%d,percentage:%.2f%%\n",d,d*100.0/n);printf("[90,100):%d,percentage:%.2f%%\n",e,e*100.0/n);printf("100:%d,percentage:%.2f%%\n",f,f*100.0/n);return 0;
}

3、判断一个字符串在另一个字符串中是否出现

【问题描述】:数组str1存放母串,str2存放子串,子串与母串中的字符逐个比较,相同则比较下一个字符;不同,则子串重新从第一个字符、母串从下一个字符开始比较。

    当子串遍历完,即到串尾,则意味着在母串找到了子串;否则,则未找到子串。

【输入形式】:分别输入母串和子串(注意:长度不能超过100)

【输出形式】:若查找成功输出“Found!”,否则输出“Not found!”

【样例输入】:

are you ok?

ok?

【样例输出】Found!

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{char str1[100],str2[100];int i=0,j=0;fgets(str1,100,stdin);fgets(str2,100,stdin);while(str1[i]!='\0'&&str2[j]!='\0'){if(str1[i]==str2[j]){i++;j++;}else{i=i-j+1;j=0;}}if(str2[j]=='\0'){printf("Found!\n");}else{printf("Not found!\n");}return 0;
}

4、验证魔方阵

【问题描述】

在下面的5X5魔方矩阵中,每一行、每一列及对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维数组中,然后验证其是否为魔方矩阵,并将其按如下格式显示在屏幕上(见题目描述)

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

[提示] 定义一个含有12个元素的数组,存放各行、各列及对角线的元素之和。


【输入形式】矩阵中各元素的值

【输出形式】

这个矩阵是或者不是魔方矩阵(is or is not)

输出该魔方矩阵(元素以%-6d格式输出)

【样例输入】

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

【样例输出】

The array is a magic square.

17    24    1     8     15

23    5     7     14    16

4     6     13    20    22

10    12    19    21    3

11    18    25    2     9

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{int a[5][5];int i,j,s1=0,s2=0,s3=0,s4=0;for(i=0;i<5;i++){for(j=0;j<5;j++){scanf("%d",&a[i][j]);}}for(i=0;i<5;i++){for(j=0;j<5;j++){s1+=a[i][j];s2+=a[j][i];s3+=a[i][i];if(i+j==4){s4+=a[i][j];}}if(s1!=s2){printf("The array is not a magic square.\n");for(i=0;i<5;i++){for(j=0;j<5;j++){printf("%-6d",a[i][j]);}printf("\n");}return 0;}}if(s1!=s2&&s3!=s4){printf("The array is not a magic square.\n");for(i=0;i<5;i++){for(j=0;j<5;j++){printf("%-6d",a[i][j]);}printf("\n");}}else{printf("The array is a magic square.\n");for(i=0;i<5;i++){for(j=0;j<5;j++){printf("%-6d",a[i][j]);}printf("\n");}}return 0;
}


http://www.mrgr.cn/news/45704.html

相关文章:

  • Sym-NCO:利用对称性进行神经组合优化
  • 【测试】——Loadrunner 介绍与使用
  • 【重学 MySQL】六十二、非空约束的使用
  • MySQL运维
  • std::future概念和使用方法
  • erlang学习:Linux命令学习10
  • 【PCL】Ubuntu22.04 安装 PCL 库
  • 三层网络与三层组网
  • Polars简介
  • 一款基于 Spring Boot、Vue、Element UI 的快速开发平台,零代码开发,致力于做更简洁的后台管理系统(附源码)
  • Comfyui segmentAnythingUltra V2报错
  • Verilog开源项目——百兆以太网交换机(九)表项管理模块设计
  • 面向对象技术——设计模式
  • 详解正确创建好SpringBoot项目后但是找不到Maven的问题
  • 刷题 二叉树
  • (22)以RS码为例说明信道编码AWGN信道的Eb/N0设置
  • 【电商搜索】现代工业级电商搜索技术-EMNLP2024-无监督的用户偏好学习
  • 大数据新视界 --大数据大厂之 Presto 性能优化秘籍:加速大数据交互式查询
  • 动态规划算法题目练习——91.解码方法
  • 九、5 USART串口数据包