文章目录
任务一:从键盘输入1个字符,编程输出其前趋字符和后继字符,以其ASCII码
#include <stdio.h>
int main(){
//题一:从键盘输入1个字符,编程输出其前趋字符和后继字符,以其ASCII码
char ch1;
scanf("%c",&ch1);
printf("%c %c %c\n",ch1-1,ch1,ch1+1);
printf("%d %d %d\n",ch1-1,ch1,ch1+1);
}
任务二:随机产生100个10—300之间的整数,找出其中的最小数(随机数种子)
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// 随机产生100个10—300之间的整数,找出其中的最小数
int random[100];
int i,min=300;
srand((int)time(0));
printf("生成的随机数如下:\t");
printf("\t");
//生成100个随机数
for (int j = 0; j < 100; j++) {
random[j] = rand()%291+10;//生成的随机数最小为10,最大为(291+10-1);即:300
printf("%d ",random[j]);
}
//比较大小,返回最小值
for(i=0;i<100;i++){
if(random[i] < min){
min = random[i];
}
}
printf("\n");
printf("min= %d",min);
}
运行结果:
任务三:随机产生100个10—300之间的整数,按从小到大的顺序排序输出(冒泡排序)
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// 随机产生100个10—300之间的整数,按从小到大的顺序排序输出
int random[100];
int i,min=300;
int t;
srand((int)time(0));
printf("生成的随机数如下:======================================================\n");
//生成100个随机数
for (int j = 0; j < 100; j++) {
random[j] = rand()%291+10;//生成的随机数最小为10,最大为(291+10-1);即:300
printf("%d ",random[j]);
}
//冒泡排序算法,最小的数排在最前面;时间复杂度:O(n的2次方);
for(i=0;i<99;i++){
//2个数进行冒泡排序:第二个for循环执行一次
for(int k=0;k<99-i;k++){
//注意:此处的max是指:参与比较的值里面的最大值;
//第一次循环: 比较前100个数里的最大值,并将max到最后一个位置。
//第二次循环: 比较前99个数里的最大值,并放max到第99个位置上。
//第三次循环: 比较前98个数里的最大值,并放max到第98个位置上。
//第99次循环:。。。。。。
if(random[k]>random[k+1]){
t=random[k];
random[k]=random[k+1];
random[k+1]=t;
}
}
}
printf("\n排序结果如下:=============================================================\n");
for (int j = 0; j <100;j++) {
printf(" %d ",random[j]);
}
}
// for(int j=i+1;j<100;j++){。。。}//和第二个for循环效果一样
运行结果:
注意冒泡排序两个for循环:
//这个for循环只是为了:确定下面for的执行次数。
for(i=0;i<99;i++){
//2个数进行冒泡排序:下面的for循环执行1次
//3个数进行冒泡排序:下面的for循环置换2次
//100个数进行冒泡排序:下面的for循环置换99次
for(int k=0;k<99-i;k++){
//比较排序
}
for(int j=i+1;j<100;j++){}
和第二个for循环效果一样
有兴趣的读者可以点击下面的超链接去看下排序动态的过程。
哔哩哔哩:冒泡排序动画演示