我感觉第一张图片的代码和第二章图片的代码没有多大的区别呀,为什么第二个可以运行而第一个就不行了?求解
修改如下,供参考:
#include <stdio.h>
int main()
{
int i, j, k, p[11];
for (i = 1; i < 11; i++)
scanf("%d", &p[i]);
for(i=1;i<10;i++)
for(j=1;j<11-i;j++)
if (p[j] < p[j + 1])
{
k = p[j]; p[j] = p[j + 1]; p[j + 1] = k;
}
for (i = 1; i < 11; i++)
printf("%d ", p[i]);
return 0;
}
if (p[j] < p[j + 1])
下面交换 p[j] p[j+1]
而不是i
A:每个线程都是自己调用例程,因此它必须有其自己的堆栈以保存局部变量、返回地址等等。这一点用户级线程和内核级线程是一样的。
代码:
#include<stdio.h>
using namespace std;
int main()
{
int n;
printf("请输入要排序的个数:");
scanf("%d",&n);
int a[n+1];
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(a[j]<a[i])
{
int tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
}
printf("排序结果:");
for(int i=1;i<=n;i++) printf("%d ",a[i]);
return 0;
}