‘壹’ 求50行简单c语言程序代码,基础的就好
#include <stdio.h>
#include <stdlib.h>
#define NUM 10
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//冒泡排序算法
//基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。
void bubbleSort(int *arr, int n) {
int i,j;
for (i = 0; i<n - 1; i++)
for (j = 0; j < n - i - 1; j++) {
//如果前面的数比后面大,进行交换
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
//最差时间复杂度为O(n^2),平均时间复杂度为O(n^2)。稳定性:稳定。辅助空间O(1)。
//升级版冒泡排序法:通过从低到高选出最大的数放到后面,再从高到低选出最小的数放到前面,
//如此反复,直到左边界和右边界重合。当数组中有已排序好的数时,这种排序比传统冒泡排序性能稍好。
//升级版冒泡排序算法
void bubbleSort_1(int *arr, int n) {
//设置数组左右边界
int left = 0, right = n - 1;
//当左右边界未重合时,进行排序
while (left<=right) {
int i,j;
//从左到右遍历选出最大的数放到数组右边
for (i =left; i < right; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
right--;
//从右到左遍历选出最小的数放到数组左边
for (j = right; j> left; j--) {
if (arr[j + 1] < arr[j]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
left++;
}
}
int main(int argc, char *argv[]) {
int arr[NUM],i,j,temp;
printf("请输入10个数:\n");
for(i=0; i<NUM; i++) {
printf("请输入第(%d)个数:",i+1);
scanf("%d",&arr[i]);
}
printf("\n输入如下排列:\n");
for(i=0; i<NUM; i++) {
printf("%4d",arr[i]);
}/*
for(i=0; i<NUM; i++) {
for(j=i+1; j<NUM; j++) {
if(arr[i]>arr[j]) {
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}*/
bubbleSort_1(arr,NUM);
/*printf("\n从小到大如下排列:\n");
for(i=0; i<NUM; i++) {
printf("%4d",arr[i]);
}*/
printf("\n从大到小如下排列:\n");
for(i=NUM-1; i>=0; i--) {
printf("%4d",arr[i]);
}
return 0;
}
‘贰’ 求二分法查找演示C语言源代码
二分法查找算法:
1.主要思想是:假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段 中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。
2. 时间复杂度: O(log2n)。
3. C语言源代码(小例子)
search函数即为核心代码:递归查找
#include<stdio.h>
intsearch(int*a,intnum,intlow,inthigh)
{
intmid=(low+high)/2;
if(low<=high)
{
if(num<a[mid])
returnsearch(a,num,low,mid-1);//加return
if(num>a[mid])
returnsearch(a,num,mid+1,high);//加return
if(num==a[mid])
return1;
}
else
return0;
}
intmain(){
inta[11]={0,1,2,3,4,5,9,11,12,13,15};
if(search(a,11,0,10)==1)
printf("success!!");
else
printf("failed!!");
}
‘叁’ C语言源代码分析(越易懂越好,我只是一个初学者)
printf“”里的是原样输出的东西,但是你的y是未知的,是你程序运行到这一步才可以得到的,你没有办法写到“”里,所以你用%d代替,%d不会原样输出,它代表整数,而你的y的数值就是%d的数值,就是当printf里有%d的时候程序知道它的数值是“”,后跟的那个数,也就是这个程序里的y,比如printf(“%d%d%d”,a,b,c);第一个%d输出的是a的值,第二个%d输出的是b的值,第三个就是c的值了,如果是%c就是字符的意思,%f就是浮点型的数
‘肆’ C语言基本代码,求详细解释,越详细越好。
这代码的注释已经很详细了呀。前面都是一堆学生信息的声明。从main()开始看,两行*****************之间的代码是你的学生管理系统的主界面及其(增删查改)功能。接下来就是if/else的判断,这是判断你输入的数字是否和你设定好的(增删查改)功能相匹配,如果匹配则可以进行相信的学生信息修改。在你做完一次选择之后,会进行类似与一个返回上级的操作,就是清屏/清除你刚才的选择。那么这个时候,只是除掉你对功能编号的选择,而保留了学生管理系统的主界面及其功能,为什么清屏没有全部清除掉呢?是因为在最初你加了一个while(1)的循环,可以循环回到系统主界面。至于你最后的代码功能cin1(){}这一段是被if/else第一判断调用(n = cin1(); //录入入n个学生的信息)。学生系统一开始是没有录入学生信息的,那么调用这段代码,你会手动将学生信息录入到系统中,这样才能进行其他功能(增删查改)的操作。
‘伍’ C语言基本代码,求详细解释,越详细越好。
解释如下:
#include"stdio.h"//头文件
#include"math.h"//数学库函数
double pcos(double a);//声明子函数
main()//主函数
{
double x,y;//定义x,y这两个双精度数据
printf("please input one number:");
//输出please input one number:
scanf("%lf",&x);//出入一个数据并赋值给x
y=pcos(x);//把x传入pcos函数,返回值赋值给y
printf("cos of %lf is %lf ",x,y);//输出cos of x is y
}
double pcos(double a)//定义子函数名,形式参数
{
double b;//定义双精度数据b
b=cos(a);//计算cos(a),并赋值给b
return b;//返回b的值
}
(5)c语言代码走查扩展阅读:
注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。
注释就是对代码的解释和说明。目的是为了让别人和自己很容易看懂。为了让别人一看就知道这段代码是做什么用的。
正确的程序注释一般包括序言性注释和功能性注释。序言性注释的主要内容包括模块的接口、数据的描述和模块的功能。模块的功能性注释的主要内容包括程序段的功能、语句的功能和数据的状态。