#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 = 0i<裤激埋n - 1i++)
for (j = 0j <n - i - 1j++) {
//如果前面的数比后面大,进行交换
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 =lefti <righti++) {
if (arr[i] >arr[i + 1]) {
int temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
right--
//从右到左遍历选出最小的数放到数组左边
for (j = rightj>leftj--) {
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=0i<NUMi++) {
printf("请输入第(%d)个数:",i+1)
scanf("%d",&arr[i])
}
printf("\n输入如下排列:\n")
for(i=0i<NUMi++) {
printf("%4d",arr[i])
}/*
for(i=0i<NUMi++) {
for(j=i+1j<NUMj++) {
if(arr[i]>arr[j]) {
temp=arr[i]
arr[i]=arr[j]
arr[j]=temp
}
}
}*/
bubbleSort_1(arr,NUM)
/*printf("\n从小到大如下排列:\n")
for(i=0i<NUMi++) {
printf("%4d",arr[i])
}*/
printf("\n从大到小如下排列:胡蚂\n")
for(i=NUM-1i>=0i--) {
printf("%4d",arr[i])
}
return 0
}
#include<散闹stdio.h>#define max 100
int helix(int a,int b,int e,int f,int s[max][max])
{int i
static int c=1
for(i=1i<=ei++)
s[a++][b]=c++
f--
a--
if(f!=0)
{
for(i=1i<=fi++)
s[a][++b]=c++
e--
if(e!=0)
{for(i=1i<=ei++)
s[--a][b]=c++
f--
if(f!=0)
for(i=1i<=fi++)
s[a][--b]=c++
}
}
}
main()
{int m,n,x,y,i=1,j,c,t,s[max][max]
printf("please input the hang&lie number.")
scanf("%d %d %d \n",&m,&n,&t)
x=m
y=n
while(1)
{ helix(i,i,x,y,s)
x=x-2
y=y-2
if(x<=0||y<=0)
break
i++
}
printf("\n")
if(t==0)
{for(i=1i<=mi++)
{for(j=1j<=nj++)
printf("%d",s[i][j])
printf("\n")
}
}
else
{for(i=1i<=ni++)
{for(j=1j<=mj++)
printf("%d",s[j][i])
printf("\n")
}
}
getch()
}
数字的逆序输闭掘芹出,自己尝试著编译看看轿毕
题目01:在一个已知的字符串中查察羡世找最长单词,假定字符串中只含字母和空格,空格用来分隔不同的单词。
直接编译,程序执行结果如下图所示:
题目02:编写一个int string_len(char *s),返回字符串s的字符长度(不包括\0)。
直接编译,程序执行结果如下图所示:
扩展资料:C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编败肢译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理派毕器(单片机或称MCU)以及超级电脑等作业平台。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)