解题思路:
1、字符串比较大小的函数strcmp(char *a, char *b)
a) a == b 返回0
b)a < b 返回负值
c) a > b返回正值
2、字符串拷贝函数 strcpy(char *a, char *b),将字符串b拷贝到字符串a中。
3、既然是排序问题,那么就可以用冒泡排序法。
注意事项:
参考代码:
#include<stdio.h> #include<string.h> int main() { char a[3][128], tmp[128]; int i, j; for(i=0; i<3; i++) { scanf("%s", a[i]); } for(i=0; i<3; i++) { for(j=i+1; j<3; j++) { if(strcmp(a[i], a[j]) > 0) { memset(tmp, 0, sizeof(tmp)); strcpy(tmp, a[i]); strcpy(a[i], a[j]); strcpy(a[j], tmp); } } } for(i=0; i<3; i++) { printf("%s\n", a[i]); } return 0; }
0.0分
77 人评分
单纯想用函数调用 #include <stdio.h> #include <string.h> #define N 100 char ch[3][N]; void bubble(char ch[][N],int i); int main(int argc,int const* argv[]) { int i=0; for(i=0;i<3;i++) { scanf("%s",ch[i]); } bubble(ch,3); for(int m=0;m<3;m++) printf("%s\n",ch[m]); return 0; } void bubble(char ch[][N],int i) { char character[128]; for(int j=0;j<i;j++) { for(int k=j+1;k<i;k++) if(strcmp(ch[j],ch[k])>0) { memset(character, 0, sizeof(character)); strcpy(character, ch[j]); strcpy(ch[j], ch[k]); strcpy(ch[k], character); } } }
求解memset函数在这里的用法
# include <stdio.h> # include <string.h> int main(void) {char a[128],b[128],c[128],d[128],e[128],f[128]; gets(a);gets(b);gets(c); if(strcmp(a, b)>0) {strcpy(f, a); strcpy(e, b);} else {strcpy(f, b); strcpy(e, a);} if(strcmp(f, c)>0 && strcmp(a, b)>0) strcpy(d, c); else if(strcmp(f, c)>0 && strcmp(a, b)<0) strcpy(d, c); else if(strcmp(f, c)<0 && strcmp(a, b)>0) {strcpy(f, c); strcpy(d, b); strcpy(e, a);} else {strcpy(f, c); strcpy(e, b); strcpy(d, a);} printf("%s\n", d); printf("%s\n", e); printf("%s\n", f); return 0; } 竟然过了
呜呜呜呜呜,大佬救命啊,我到底错在哪里了 #include<stdio.h> #include<string.h> int main() { char a[128],b[128],c[128],temp[128]; scanf("%s",&a); scanf("%s",&b); scanf("%s",&c); if(strcmp(a,b)){ strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } if(strcmp(b,c)){ strcpy(temp,c); strcpy(c,b); strcpy(b,temp); } if(strcmp(a,b)){ strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } puts(a); puts(b); puts(c); return 0; }
NoraMin 2020-11-27 11:20:07 |
在每个判断语句后面加个>0就可以了
傻傻的做法 #include<iostream> #include<cstring> using namespace std; int main() { string str1,str2,str3,a,b,c,t; getline(cin,str1); getline(cin,str2); getline(cin,str3); for(int i=0;i<str1.length();i++) { a+=str1[i]; } for(int i=0;i<str2.length();i++) { b+=str2[i]; } for(int i=0;i<str3.length();i++) { c+=str3[i]; } if(a>b) { t=b;b=a;a=t; } if(b>c) { t=c;c=b;b=t; } if(a>b) { t=b;b=a;a=t; } cout<<a<<endl;cout<<b<<endl;cout<<c<<endl; return 0; }
#include<stdio.h> #include<string.h> int main() { char b[3][4], t; for (int i = 0; i < 3; i++) gets(b[i]); for (int i = 0; i < 3; i++) { if (b[i][0] > b[i][1]) { t = b[i][0]; b[i][0] = b[i][1]; b[i][1] = t; } if (b[i][1] > b[i][2]) { t = b[i][1]; b[i][1] = b[i][2]; b[i][2] = t; if (b[i][0] > b[i][1]) { t = b[i][0]; b[i][0] = b[i][1]; b[i][1] = t; } } } for (int i = 0; i < 3; i++) { if (b[0][i] > b[1][i]) { t = b[0][i]; b[0][i] = b[1][i]; b[1][i] = t; } if (b[1][i] > b[2][i]) { t = b[1][i]; b[1][i] = b[2][i];
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:640 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1312 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:506 |
小九九 (C语言描述,不看要求真坑爹)浏览:985 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:686 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:547 |
快速排序算法1浏览:886 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:533 |
母牛的故事 (C语言代码)浏览:503 |
C语言训练-求素数问题 (C语言代码)浏览:615 |
我好菜 2022-04-01 14:54:43 |
这是冒泡排序吧,选择排序每轮选出符合条件的与相应位置进行交换,一轮只交换一次,而冒泡排序每次与关键字进行对比对比后直接交换位置