国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C編程輔導:ECE222 Vectors And Matrices

2022-10-25 15:23 作者:拓端tecdat  | 我要投稿

原文鏈接:tecdat.cn/?p=29614

Requirement

In this lab, each student is to write a program that allows the user to manipulate the entries in?vector, or in a?matrix. The program should keep track of one vector of variable length, and one matrix of exactly 4x4 size. The program should enter a loop, displaying a set of options (given below). Once the user selects an option, the program should display the vector (or matrix, as appropriate) before and after the operation chosen by the user. For example, if the user selects “reverse vector” and the current vector is [-3 0 2 5] then the program should display:

input ? -3 0 2 5 ? reversed ? 5 2 0 -1 復制代碼

The program should run until the user selects an option to quit.
The program must use the following structure definitions.

struct vector { ? float *data; ? int ? ?size; }; struct matrix { ? struct vector rows[4]; }; 復制代碼

Analysis

Vectors和Matrices,矢量和矩陣,也稱一維和二維數(shù)組。屬于C語言很常見的數(shù)據(jù)結(jié)構(gòu)。本題要實現(xiàn)的是矢量的反轉(zhuǎn),以及矩陣的轉(zhuǎn)置。
反轉(zhuǎn)和轉(zhuǎn)置需要用到排序算法,這里我們采用Quicksort,也就是快速排序。

Tips

矢量反轉(zhuǎn)所用的快速排序算法如下

int parition(struct vector *vec, int left, int right) { ? float piovt, temp; ? int i, j; ? piovt = *(vec[left]); ? i = left; ? j = right + 1; ? while (1) { ? ? do { ? ? ? ++i; ? ? } while (*(vec[i]) <= piovt && i <= right); ? ? do { ? ? ? --j; ? ? } while (*(vec[j]) > piovt); ? ? if (i >= j) { ? ? ? break; ? ? } ? ? temp = *(vec[i]); ? ? *(vec[i]) = *(vec[j]); ? ? *(vec[j]) = temp; ? } ? temp = *(vec[left]); ? *(vec[left]) = *(vec[right]); ? *(vec[right]) = temp; ? return j; } ? void quick_sort(struct vector *vec, int left, int right) { ? int i; ? if (left < right) { ? ? i = partition(vec, left, right); ? ? quick_sort(vec, left, right - 1); ? ? quick_sort(vec, i + 1, right); ? } } 復制代碼


C編程輔導:ECE222 Vectors And Matrices的評論 (共 條)

分享到微博請遵守國家法律
剑川县| 惠州市| 彭阳县| 长春市| 济南市| 平谷区| 民和| 勃利县| 灵台县| 从化市| 铁岭县| 富源县| 来凤县| 双柏县| 噶尔县| 法库县| 西昌市| 镇宁| 阿拉善左旗| 秦皇岛市| 邮箱| 文安县| 九龙坡区| 南平市| 永丰县| 射洪县| 乐清市| 襄樊市| 衡南县| 枝江市| 乌恰县| 泗阳县| 孟州市| 合作市| 阜城县| 永靖县| 获嘉县| 常山县| 海城市| 大城县| 靖安县|