c语言填空题,求解释 C语言填空题,答案为21,求解释。

c\u8bed\u8a00\uff0c\u586b\u7a7a\u9898\uff0c\u6c42\u7b54\u6848\u548c\u89e3\u91ca

7\u3001\u4f5c\u7528\u57df
8\u3001\u6c47\u7f16\u4ee3\u7801
9\u3001a[9]
10\u30016

short int \u53602\u4e2a\u5b57\u8282
char \u53601\u4e2a\u5b57\u8282 num[3]:3x1=3
float \u53604\u4e2a\u5b57\u8282 s[2]:2x4=8
double \u53608\u4e2a\u5b57\u8282\uff1b
2+3+8+8=21

The original data : 9 1 4 2 3 6 5 8 7
The data after moving : 1 9 2 8 3 7 4 6 5
这个程序是想隔一个来排序。
相信LZ应该知道,运行到这,pn是这一轮循环中的最小值位置,px是这一轮中最大值的位置 ,这一轮从i开始。
if (pn != i)

{
t = a[i];
a[i] = min;
a[pn] = t; //如果pn不等于i就说明pn的位置是最小的,所以pn位置的数和i位置交换
if (px == i)
{
px =pn;//如果恰好px等于i,就说明这一轮开始的位置(也就是i的位置)是最大的
//而恰好,因为i的位置和最小的位置交换了(也就是现在的pn位置),所以要把最大
//的位置找回来,所以pn的位置是最大的,所以把pn赋给px
}

}

if (px != i+1)

{
t = a[i+1];
a[i+1] = max;
a[px] = t;//如果px不等于i + 1就说明px的位置是最小的,所以px位置的数和i + 1位置交换
}

输出结果:1 9 2 8 3 7 4 6 5

# include <stdio.h>
#define N 9
void fun(int a[], int n)
{ int i,j, max, min, px, pn, t;
for (i=0; i<n-1; i+=2)
{
max = min =a[i];
px = pn = i;

//找出数组a[i]以后(包括a[i])范围内的最大值,最小值,分别赋给max,min,并将最大值地址,最小值地址赋给px,pn。
for (j=i+1; j<n; j++)
{
if (max<a[j])
{ max = a[j]; px = j; }
if (min>a[j])
{ min = a[j]; pn = j; }
}

//当pn != i时交换a[i]与a[pn]中数据,使a[i]成为数组a[i]以后(包括a[i])的最小值。
if (pn != i)
{ t = a[i]; a[i] = min; a[pn] = t;

//此时,已不能保证a[px]为最大值,因为无法排除px =i的情况,这种情况下,由于刚对a[i]进行了修改,数组实际的最大值已经变成了a[pn],下面的步骤便是为了确保a[px]为最大值。
if (px == i) px =pn;
}

//当px != i+1时交换a[i+1]与a[px]中数据,使a[i+1]成为数组a[i]以后的最大值。
if (px != i+1)
{ t = a[i+1]; a[i+1] = max; a[px] = t; }
}
}
main()
{ int b[N]={9,1,4,2,3,6,5,8,7}, i;
printf("\nThe original data :\n");
for (i=0; i<N; i++) printf("%4d ", b[i]);
printf("\n");
fun(b, N);
printf("\nThe data after moving :\n");
for (i=0; i<N; i++) printf("%4d ", b[i]);
printf("\n");
}

这种题生看很费劲,边跑边看就容易理解了.

快速排序:每次选最大的后移,最小的前移

  • C璇█鍩虹濉┖棰,鍦ㄧ嚎绛,瑕佽缁嗘楠ゅ拰瑙i鎬濊矾?
    绛旓細do{ j++; } while(i++<3); 姝よ鍙 鏄厛寰幆 鍐嶆鏌ユ潯浠 鍜屼笂涓棰樹笉鍚屻傚垵濮嬪寲鍊硷細int i=1,j=0;绗1娆″惊鐜細鍏堟墽琛宩++, 鐒跺悗 姹傝〃杈惧紡 i<3 锛屼负TRUE,鏈鍚巌+1,鎵ц缁撴灉:j=1,i=2;绗2娆″惊鐜細鍏堟墽琛宩++, 鐒跺悗 姹傝〃杈惧紡 i<3 锛屼负TRUE,鏈鍚巌+1,鎵ц缁撴灉:j=2,i=3;绗3娆...
  • C璇█涓▼搴濉┖甯瑙i噴
    绛旓細include <stdio.h>int main(){ int m,n,t,gcd,gcm; int a,b; scanf("%d%d",&m,&n); t=m%n; a=m;b=n; while(t>0 && t<=n) { m=n; n=t; t=m%n; } gcd=n; gcm=(a*b)/gcd;//涓や釜鏁扮殑涔樼Н绛変簬杩欎袱涓暟鐨勬渶澶у叕绾︽暟涓...
  • c璇█璇曞嵎姹傝В绛
    绛旓細int a[12]={1,4,7,10,2,5,8,11,3,6,9,12} A.10 B.9 C.6 D.5 9. 鍦C璇█涓紝浠 浣滀负瀛楃涓茬粨鏉熸爣蹇 ( D )A.\n鈥 B. 鈥 鈥 C. 鈥0鈥 D.鈥橽0鈥10. C璇█涓紝鍏崇郴琛ㄨ揪寮忓拰閫昏緫琛ㄨ揪寮忕殑鍊兼槸 ...
  • C璇█鐨勫嚑閬濉┖棰缁欒缁嗚鏄
    绛旓細3. 12345678 濡傛灉浣犵敤鐨勭紪璇戝櫒鐨刬nt鏄咯浣嶇殑璇濈粨鏋滀細鏄5678 %x鎵撳嵃鏁村舰鏀逛负%lx灏辫兘鎵撳嵃long鍨嬩簡 4. 100 瀹忔槸鏇夸唬鐨 30/MD ==銆30/3*T ==銆 30/3*10=100 5. f(str)+1 str鍦板潃瀵瑰簲鐨勫唴瀹瑰湪瀛愬嚱鏁颁腑缁欎慨鏀逛簡 str = "fun" f(str)+1 琛ㄧずstr+1鏄痵tr瀛楃涓查鍦板潃鍔犱竴 "un"f(str...
  • 鍑犻亾C璇█濉┖棰,瑕佸叿浣瑙i噴
    绛旓細鍥犳鏈鍚c鐨勫煎氨鏄痓鐨勫硷紝涔熷氨鏄痗=b=2锛屾渶鍚巆鐨勫间负2銆傜6棰 x||y+z缁撴灉涓1 鍚屾牱鍏堣绠楀乏杈硅〃杈惧紡锛屼篃灏辨槸x锛屽洜涓簒涓洪潪0鎵浠ュ叾鍊间负鐪燂紝瀵逛簬||杩愮畻绗︽潵璇达紝鍙琛ㄨ揪寮忎腑浠绘剰涓涓间负鐪燂紝鍏剁粨鏋滃氨涓虹湡锛屽湪C涓潪闆跺奸兘涓虹湡锛屽彧鏈0鎵嶄负鍋囷紝鍥犳瀵逛簬x||y+z琛ㄨ揪寮忕殑鍊间负1銆
  • C璇█濉┖棰,绛旀涓篺fffffff,姹傝В閲
    绛旓細鍘熷洜灏辨槸鏁板瓧鍦ㄦ満鍣ㄤ腑鏄互琛ョ爜鐨勫舰寮忓瓨鍌ㄧ殑锛屾暣鏁扮被鍨嬪崰4涓瓧鑺傦紝锛1鐨勮ˉ鐮佹槸鎵鏈変簩杩涘埗浣嶅叏涓1锛岀敤16杩涘埗琛ㄧず灏辨槸ffffffff
  • C璇█濉┖棰,鑳藉濉嚭绛旀,骞瑙i噴姣忚鐨,浼樺厛缁欐弧鎰
    绛旓細3锛屽~p=s锛屽垵濮嬪寲p鎸囬拡锛屾寚鍚憇 4锛屽~p--锛屽洜涓*p='\0'浜嗭紝鍗硃鎸囧悜浜嗘渶鍚庝竴涓瓧绗︾殑鍚庝竴涓瓧绗︼紝鎵浠--鎸囧悜鏈鍚庝竴涓瓧绗 5锛屽~p--锛屼氦鎹㈠悗p鎸囬拡鍓嶇Щ
  • 銆愭偓璧忋戜袱閬C璇█鐨濉┖棰,鍒嗗埆鎬庝箞瑙i噴?
    绛旓細1.杩斿洖鐨勬槸閫楀彿琛ㄨ揪寮 (3,4)鐨勫锛岄楀彿琛ㄨ揪寮忕殑鍊肩敱鏈鍚庝竴椤瑰喅瀹氾紝鎵浠ヨ繑鍥炲兼槸4 2.棣栧厛锛屾墦瀛楅敊璇紝搴旇鏄痚num鎵嶅鍟娿侫+1锛屽簲璇ユ槸1锛屾灇涓惧彉閲忔湭浣滆鏄庯紝浠0寮濮嬶紝姣忎釜鍔1 涔熷氨鏄A瀵瑰簲0锛孊瀵瑰簲1锛孋瀵瑰簲2锛屾墍浠+1鍊间负1
  • C璇█濉┖棰,绛旀涓21,姹傝В閲銆
    绛旓細short int 鍗2涓瓧鑺 char 鍗1涓瓧鑺 num[3]:3x1=3 float 鍗4涓瓧鑺 s[2]:2x4=8 double 鍗8涓瓧鑺傦紱2+3+8+8=21
  • C璇█鐨濉┖棰~~~瑕佹湁璇︾粏瑙i噴
    绛旓細3锛庤鍐欏嚭涓鏉¤緭鍏ヨ鍙ワ紝涓哄瓧绗﹀瀷鍙橀噺ch璇诲叆鏁版嵁 scanf("%c",&ch) 銆4锛 姹備綑杩愮畻绗%涓よ竟杩愮畻瀵硅薄鐨勬暟鎹被鍨嬪彧鑳芥槸 鏁村瀷 銆5锛 鏁扮粍鍚嶄綔涓哄嚱鏁扮殑瀹炲弬锛屼紶閫掔殑鏄 鍦板潃 銆6锛 璁炬湁瀹氫箟锛歩nt *p,x=5; 璇峰啓鍑轰娇鎸囬拡p鎸囧悜鍙橀噺x鐨勮祴鍊艰鍙 p=&x; 銆7锛庤鏈夊畾涔夛細int...
  • 扩展阅读:扫一扫题目出答案 ... c++新手代码大全 ... c++中<< ... c语言解释 ... c语言常识填空题 ... c语言符号大全表解释 ... c#一般用来开发什么 ... c语言代码解释 ... c语言填空题必背概念 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网