IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数据结构第一节作业 -> 正文阅读

[数据结构与算法]数据结构第一节作业

数据结构第一节作业

配合实验一对同学们C语言编程基本能力评测

请同学们从9个题目中任意选择题目编程实现,编程实现题目数量请尽量多!

1、输入三个整数x,y,z,请编程把这三个数由小到大输出。

2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
兔子的规律为数列1,1,2,3,5,8,13,21…

3、编程实现从键盘上输入10个整数,对输入的10个整数进行排序并输出。

4、输入一个十进制整数,输出与其相等的二进制形式。将二进制保存在一个数组中,然后按相反的顺序输出。

5、编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述统计结果。

6、青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和一个最低分)。

7、已知数组a中的元素已按由小到大顺序排列,编程实现将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列。

8、自定义一个结构体为“Student”数据类型,包含学号、姓名、年龄等信息,试建立一个有三个结点的简单链表。

9、编写函数countpi,利用公式

如何插入一段漂亮的代码片

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <list>

using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int test1();  //声明函数 
int test2(int init);
int test3(int thArray[]);
int test4(int init);
int test5();
int test6();
int test7();
void test8();
int test9();
// 包含学号、姓名、年龄等信息,试建立一个有三个结点的简单链表。
struct Student
{
   char name[100];
   int  age;
   int  num;
   struct Student*next;
}; 
int main(int argc, char** argv) {
	printf("1、输入三个整数x,y,z,请编程把这三个数由小到大输出。\n");
	test1();
	printf("2、输入兔子个数 \n");
	int num;
	scanf("%d",&num);
 	printf("%d \n",test2(num));
 	printf("3、编程实现从键盘上输入10个整数,对输入的10个整数进行排序并输出。 \n");
 	int thArray[10];
 	for(int i=0;i<10;i++){
 		scanf("%d",&thArray[i]);
	 }
	test3(thArray);
 	printf("4输入一个十进制整数,输出与其相等的二进制形式。将二进制保存在一个数组中,然后按相反的顺序输出。\n");
	int de;
	scanf("%d",&de);
	test4(de);
 	printf("5、由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述统计结果。\n");
	test5();
 	printf("6、青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和一个最低分)。\n");
	test6();
	printf("7、已知数组a中的元素已按由小到大顺序排列,编程实现将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列。\n");	
 	test7();
 	printf("8------------------\n");
	test8();
	printf("9------------------\n");
	test9();


 	return 0;

}

int test1(){
	int a ,b ,c;

	scanf("%d  %d  %d",&a,&b,&c);
	
	if(a>b){
		int t;
		t=a;
		a=b;
		b=t;
	}
	if(a>c){
		int t;
		t=a;
		a=c;
		c=t;
	}	
	if(b>c){
		int t;
		t=b;
		b=c;
		c=t;
	}	
	
	printf("%d %d %d \n",a,b,c);
	return 0;
}

int test2(int init){

	if (init == 1 || init == 2)
	{
		return 1;
	}
	else
	{
		return test2(init - 1) + test2(init - 2);
	}

	
	return 0;
}

int test3(int thArray[]){
	int length =10;
 
	for(int i=0;i<length;i++){
		for(int j=0;j<length;j++){
			if(thArray[i]>thArray[j]){
				int temp=thArray[j];
				thArray[j]=thArray[i];
				thArray[i]=temp;
			}
		}
	}
	for (int i = 0; i<10; i++){
		printf("%d \t", thArray[i]);
	}
	printf("\n");

	return 0;
}

int test4(int init){
	std::list<int> mylist;
 	int i=0,n=0;
	while(init!=0){
	    mylist.push_front(init%2);
	   	init=init/2;
	   	i++;
	}
	int binArray [i];
	while(!mylist.empty()){
		binArray[n]=mylist.front(); 
		mylist.pop_front();
		n++;
	}
	printf("进制转换结果");
 	for(int z=0;z<i;z++){
		printf("%d",binArray[z]);
	}
		printf("\n");
	for(int z=i-1;z>-1;z--){
			printf("%d",binArray[z]);
	}
		printf("\n");
}

int test5(){
 	char n[200];
	fflush(stdin); //之前scanf的时候,会遗留一个’\n’在缓冲区里,因此,gets()误将这个回车作为了它的输入。应在gets函数之前使用,fflush(stdin);清空默认缓冲区(使用stdin,不是自己定义的gets(a)数组的数组a)
	gets(n);	
   printf("(%s)的长度是 (%d) \n", n, strlen(n));
	return 0;
}
int test6(){
	float score [10];
	for(int i=0;i<10;i++){
		scanf("%f",&score[i]);
	}
	
		for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
			if(score[i]>score[j]){
				int temp=score[j];
				score[j]=score[i];
				score[i]=temp;
			}
		}
	}
	 float sum=0;
	for(int i=1;i<9;i++){
		sum+=score[i];
	}
	
	printf("去掉一个最高分和一个最低分平均分为: %f \n",sum/8);
	return 0;
	
}

int test7(){
	int array1[]={10,12,14,16,18,19,20,22,30};
	int a;
	int flag=9;

	scanf("%d",&a);
    int array2[10];
	for(int i=0;i<9;i++){
	 
		if(a>array1[i]){
			array2[i]=array1[i];
		}else{
			array2[i]=a;
			flag= i+1;
			break;
		}	 
	}
	
	if(flag<9){
		for(int i= flag; i<10;i++){
			array2[i]=array1[i-1];
		}
	}else{
		array2[flag]=a;
	}
	for(int i=0 ;i<10;i++){
		printf("%d \t",array2[i]);
	}
	
	
}
void test8(){
	struct Student a, b, c, *head, *p; 
	
	strcpy(a.name,"a");
	a.age=20;
	a.num=1001;
	
	strcpy(b.name,"b");
	b.age=22;
	b.num=1002;
	
	strcpy(c.name,"c");
	c.age=21;
	c.num=1003;

	head=&a;
	a.next = &b;
 	b.next = &c;
	c.next = NULL;
	
	p = head;	
	do{

	 printf("name=%s num=%ld  age=%d\n",p->name, p->num, p->age);

	 p = p->next;

 	} while (p != NULL);

}
int test9(){

	float s=1.0, n=1.0 , t=1.0 , pi=0 ;
 	
	while(t>1e-5){
		pi = pi + t;
		n =n+2;
		t=t*(s/n);
		s++;
		printf("%f \n",t);
	}
		printf("结束");

	pi=pi*2;
	
	printf("%0.5f",pi);
	
	FILE *fpWrite=fopen("p7_3.out.txt","w");  
    fprintf(fpWrite,"%f",pi);  
    fclose(fpWrite);  
	return 0; 
}

gets()函数 ,用gets()替代scanf();
gets可以无限读取字符串,不会判断上限,以回车结束读取。其用法为gets(s),其中s为字符串变量(字符串数组名或字符串指针)。简单的理解就是读入一串字符(遇到回车结束),存到s中。

scanf(“%[^\n]”,str) ,遇到"\n"结束
'^'含有非的意思
“%[^\n]“即遇到\n结束。

scanf的时候,会遗留一个’\n’在缓冲区里,
因此,gets()误将这个回车作为了它的输入。
应在gets函数之前使用,fflush(stdin);清空默认缓冲区

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 02:14:53  更:2022-09-15 02:17:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:16:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码