本文目录一览:
解读C语言程序代码,
在C语言中,程序的执行都是有严格顺序的,这个语句就是从左往右执行(赋值语句是从右往左执行的),先把x的值赋给t,然后再把y的值赋给x,这样t就等于原来x的值,而x等于原来y的值,最后把t的值赋给y,结果就是x等于原来y的值,y等于原来x的值,x,y的值就交换了。
程序解读C语言
sort()是个排序函数,作用是对传入的数组a进行排序,数组a是个整型数组,共有n个元素(下标是0~n-1)。 这个函数使用了选择排序算法,即逐个从数组中选出第c大的数,并将其放在第c位。
for(i=0; i < n-1; i++) //外循环,用于找第i大的数
{
k = i; //标记出现在的i值
for(j = i+1; j < n; j++)
if(a[j] < a[k]) k = j; //从i+1到n-1逐个与a[i]对比,如果a[j] < a[k],就把j值重新赋予k,这个对比过程重复进行n-i次
if(k != i) //如果发生了对k重新赋值的操作(即找到了比a[i]大的数字),那么k!=i,所以要交换a[i]和a[k]的值,如果k值未变,则说明没有比a[i]大的值,所以此次不进行交换操作,直接进行下一次循环。
{
t = a[i];
a[i] = a[k];
a[k] = t;
}
}
这并不是冒泡排序,而是选择排序,希望某些网友不要误导别人!谢谢!
c语言代码解读
你有些地方没有截得好。
#include <stdio.h>
void main()
{
char *a; //这边差个变量,定义字符类型的指针a//*你少了一个字符型变量,//指针无法用于输入
int i, j; //定义整形变量i,j
for(i = 0; i <= 5; i++) //for循环将i赋值为0,i在<=5时,每次循环之后i加1
{
gets(a); //输入字符型指针a
for(j = 0; j <= 1000; j++) //for循环将j赋值为0,j在<=1000时,每次循环之后i加1
if(a[j] == '\0') //当a[j]的字符数组到最后时(ps:在字符型数组在结尾时都会自动添加'\0')
printf("呵呵\n"); //输出呵呵并换行
for(j = 0; j < 1000; j++) //for循环将j赋值为0,j在<1000时,每次循环之后i加1
a[j] = 2; //当a[j]中当字符中有2的时候//*感觉这地方有些不合理,怎么用数字来判断
}
printf("去洗澡了,88"); //输出去洗澡了,88
}
感觉你有些地方写错了,不知道是不是没有上面的问题,你自己看一下,不会的可以私聊我,求采纳,谢谢啊!(ps:带*的是我感觉有问题的地方)