#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void sort1(int s[],int n)
{
int i,j;
int temp;
for(i=0;i<10;i++){//外循环控制判断组,每一组都会两两比较
for(j=9;j>=i+1;j--){//这里的循环控制两两比较 --- 因为最大的已经在后面了,所以不用参与比较就出现了j>=i+1
if(s[j]<s[j-1]){//两两比较,把大的放到后面
temp=s[j];
s[j]=s[j-1];
s[j-1]=temp;
}
}
}
}
int main()
{
int i,a[10];
srand(time(NULL));//产生真随机数
printf("随机产生10个整数:\n");
for(i=0;i<10;i++){//初始化数组
a[i]=rand()%100;
}
for(i=0;i<10;i++){//输出十个整数
printf("%d\t",a[i]);
}
printf("\n");
sort1(a,10);//调用函数进行排序
printf("排序后的结果:\n");
for(i=0;i<10;i++){//输出排序后的结果
printf("%d\t",a[i]);
}
}
for(j=9;j>=i+1;j--)
设计还是比较巧妙的,这里考虑到了最大的已经放好了位置,不用再参与比较,可以提高代码运行速度#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void sort2(int s[],int n)
{
int i,j,k;
int temp;
for(i=0;i<n-1;i++){
k=i;//暂存i下标
for(j=i+1;j<=n-1;j++){//找到最小数组的下标 ,由k储存
if(s[j]<s[k]){
k=j;
}
}
if(k!=i){//s[k]存储最小下标
temp=s[k];
s[k]=s[i];
s[i]=temp;
}
}
}
int main()
{
int i,a[10];
srand(time(NULL));
printf("随机产生10个整数:\n");
for(i=0;i<10;i++){
a[i]=rand()%100;
}
for(i=0;i<10;i++){
printf("%d\t",a[i]);
}
printf("\n");
sort2(a,10);
printf("排序后的结果:\n");
for(i=0;i<10;i++){
printf("%d\t",a[i]);
}
}
undefined reference to winmain
,找了一段时间代码在哪里出错,结果是main写成了maim,果然还是要先看懂英文,再去找错误比较快速!#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int a[50][50],i,j,n;
printf("请输入杨慧三角形的行数:");
scanf("%d",&n);
for(i=1;i<=n;i++){//初始化所有的1
a[i][i]=1;
a[i][1]=1;
}
for(i=3;i<=n;i++){//初始化数组:对于除1外的数据进行初始化
for(j=2;j<=i-1;j++){
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=1;i<=n;i++){//打印杨辉三角,外循环控制多少行输出
for(j=0;j<=n-i;j++){//控制每一行的空格输出
printf(" ");
}
for(j=1;j<=i;j++){//控制每一行的数据输出
printf("%-6d ",a[i][j]);
}
printf("\n");
}
}
原文:https://www.cnblogs.com/oceaninfinite/p/12845345.html