对,没错,智障就是我,我就是智障Xigaga
我又来了。。。
老规矩,先看题,依然来源于codeup,链接懒得发了,主要是最讨厌的是指针,,唉,还是自己水平差,唉,其实我知道是我自己懒,各位看客勿喷...
PS:我这么懒得水平,都敢学编程,你们还怕啥是不是?好吧,怕的好像只有我。。。
言归正传
问题 D: C语言10.15
时间限制: 1 Sec 内存限制: 32 MB
提交: 656 解决: 392
[提交][状态][讨论版][命题人:外部导入]
题目描述
输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。
输入
3行,每行一个用字符串。保证每个字符串的长度不超过20。
输出
按从小到大的顺序输出这3个字符串,每个字符串一行。
请注意行尾输出换行。
样例输入
China
CLOCK
deal
样例输出
CLOCK
China
deal
此为,我的初稿,嗯,意料之中的编译错误
#include<iostream>
using namespace std;
#include<string.h>
int main()
{
string a[3][20];
int i,j;
for(i=0;i<3;i++)
{
gets(a[i]);
}
string max=a[0];
for(i=0;i<3;i++)
{
if(a[i+1][0]>a[i][0])
{
swap(a[i+1],a[i]);
}
}
for(i=0;i<3;i++)
{
cout<<a[i]<<endl;
}
return 0;
}
后来,没错,没忍住,Google了。。。。
然后发现,其实这里面有考到交换(指针),不过解法用到了strcmp(a,b),这个函数,我发现,其实到目前我是第一次用这个函数,唉,真的是书到用时方恨少,多读书,多敲代码啊各位!
然后发现,哎嘿,真的是挺妙的!@-@
#include<iostream>
using namespace std;
#include<string.h>
int main()
{
char a[3][20],*p[3]={a[0],a[1],a[2]};
char *temp;
int i,j;
for(i=0;i<3;i++)
{
gets(a[i]);
}
for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)
if(strcmp(p[i],p[j])>0)
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
for(i=0;i<3;i++)
{
cout<<p[i]<<endl;
}
return 0;
}
参考代码来源于:https://blog.csdn.net/zengshunyao/article/details/8915055
说实话,一维好不容易,会了一丢丢,现在又是啥都不会了...唉,温故而知新是多么的重要啊!!!(划重点!!!!!!!)
而碰到二维就傻傻的啥也不会了,全靠瞎写,不知道多年以后,不知道在干什么的自己看到这个会不会哭啊T-T
不会的,会觉得挺有趣的吧!@-@