本人大一上學期沒好好學C語言,下學期第一周要做課設,作為一個渣渣我已經碼了三天,沒有任何結果,現尋求各路大佬幫我寫這段代碼,我發誓我下學期一定好好做個碼農!嗚嗚嗚. 要求如下,按圖片中的基本原理來寫,用C語言寫出這段代碼(劃重點,是C語言不是C++),無需創新,可適當做出注釋(PS:如果嫌棄注釋太麻煩可加我QQ:1045138395詳細解答,PSS:大佬如果有空的話)以下是圖片(PS:在課題功能描述中“再按名的正常漢字順序排序”指的是按字母表的順序)謝謝各路大佬,小徐在這給您跪了!



uj5u.com熱心網友回復:
不是特別難的題目,做一個簡單的排序即可,不會復雜的排序演算法,用簡單的冒泡排序就能完成,自己動手寫一下,可以的uj5u.com熱心網友回復:
不啊,大佬我寫三天了

uj5u.com熱心網友回復:
那把你寫了三天的代碼貼出來看一下uj5u.com熱心網友回復:
私信給你嗎?回復沒法發圖片啊
uj5u.com熱心網友回復:
把代碼粘貼到這里就行uj5u.com熱心網友回復:
#include<stdio.h>#include<string.h>
struct Name {
char name[20];
}name[20];
int getNum(char name[20]) {
int i;
char p[4][3] = {"趙","錢","孫","李"};
for (i = 0;i < 4;i++) {
if (name[0] == p[i][0] && name[1] == p[i][1]) {
return i;
}
}
}
int main() {
char temp[20];
int n, i, j, m, u;
u = 3;
for (i = 0;i < u;i++) {
scanf("%s\n",name[i].name);
}
for (i = 0;i < u;i++) {
for (j = i;j < u-1;j++) {
m = getNum(name[j + 1].name);
n = getNum(name[j].name);
if (m < n) {
strcpy(temp, name[j+1].name);
strcpy(name[j+1].name, name[j].name);
strcpy(name[j].name, temp);
}
if (m == n && strcmp(name[j+1].name,name[j].name)<0) {
strcpy(temp,name[j+1].name);
strcpy(name[j+1].name,name[j].name);
strcpy(name[j].name,temp);
}
}
}
for (i = 0;i < u;i++) {
printf("%s\n", name[i].name );
}
return 0;
}
uj5u.com熱心網友回復:
框架給你寫好了,自己寫個排序的比較方式
#include<stdio.h>
#include<string.h>
#define MAXSIZE 100
#define NUMBER_OF_PEOPLE 20
struct Person {
char name[MAXSIZE];
};
void inputFunc(Person* people,int size) {
int i;
for (i = 0; i < size; i++)
scanf("%s", people[i].name);
}
void outputFunc(Person* people, int size) {
int i;
for (i = 0; i < size; i++)
printf("%s\n", people[i].name);
}
bool compare(const char* a, const char* b) {
//比較時注意中文字符占兩個ASCII碼
}
void sortFunc(Person *people,int size) { //簡單的冒泡排序
int i, j;
Person temp;
for (i = 0; i < size - 1; i++) {
for (j = i + 1; j < size; j++) {
if (compare(people[i].name,people[j].name)) { //true則互動位置
strcpy(temp.name, people[i].name);
strcpy(people[i].name, people[j].name);
strcpy(people[j].name, temp.name);
}
}
}
}
int main() {
Person people[NUMBER_OF_PEOPLE];
inputFunc(people, NUMBER_OF_PEOPLE);
sortFunc(people, NUMBER_OF_PEOPLE);
outputFunc(people, NUMBER_OF_PEOPLE);
return 0;
}
uj5u.com熱心網友回復:
!謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝您
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/140707.html
標籤:C語言
上一篇:【POJ求助帖】小白求助各位大哥,分不多,但這是全部了,求路過的大哥來看看解答一下小弟的困惑
下一篇:【求助】DevC++除錯問題
