概述
cr:经典
题目30
字符串反转,如将字符串 "www.runoob.com" 反转为 "moc.boonur.www"。
思路:
本来想试一下strlen函数来实现的,结果strlen得到的结果很奇怪。看下B站的解法。
C站用了指针,暂且不看那个方法。B站用的是交换,也就是中间那个字母两端对应的字母直接交换位置。
代码:
#include<stdio.h>
#include<string.h>
main()
{
int b;
char a[] = "www.runoob.com", temp;
b = strlen(a);
for (int i = 0; i < b / 2; i++) {
temp = a[i];
a[i] = a[b - 1 - i];
a[b - 1 - i] = temp;
}
puts(a);
}
对方:![](https://file2.kaopuke.com:8081/files_image/2023060823/7f5ebb1daf624f68bb27ddcd3435231a.png)
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
//
#include <stdio.h>
void reverse(char* s)
{
// 获取字符串长度
int len = 0;
char* p = s;
while (*p != 0)
{
len++;
p++;
}
// 交换 ...
int i = 0;
char c;
while (i <= len / 2 - 1)
{
c = *(s + i);
*(s + i) = *(s + len - 1 - i);
*(s + len - 1 - i) = c;
i++;
}
}
int main()
{
char s[] = "www.runoob.com";
printf("'%s' =>n", s);
reverse(s); // 反转字符串
printf("'%s'n", s);
return 0;
}
反思&收获:
还是要多加练习。
cr:小林
例31
C语言用指针方法对10个整数按由大到小顺序排序。
思路:
指针还没学会,直接看视频。
代码:
#include<stdio.h>
void f(int a[]);
main()
{
int i, * p, a[10];
p = a;
printf("输入十个数字:");
for (i = 0; i < 10; i++) {
scanf("%d,", p++);
}
f(a);
for (i = 0; i < 10; i++) {
printf("%d,", a[i]);
}
}
void f(int a[])
{
int i, j, t, k;
for (i = 0; i < 9; i++) {
k = i;
for (j = 1+i; j < 10; j++) {
if (a[j] > a[k]) {
k = j;
}
}
t = a[k];
a[k] = a[i];
a[i] = t;
}
}
对方:![](https://file2.kaopuke.com:8081/files_image/2023060823/aaa075b6d7eb4f0495244bd1a9bab159.png)
![](https://file2.kaopuke.com:8081/files_image/2023060823/42bf06f80119423e8fe534423e937bf7.png)
![](https://file2.kaopuke.com:8081/files_image/2023060823/46831fda554447c7bfa3b6f479f5b910.png)
反思&收获:
还没来得及写。需要反思一下排大小的那个函数。
最后
以上就是仁爱烧鹅为你收集整理的【C语言经典100题】(1月12日-day30)的全部内容,希望文章能够帮你解决【C语言经典100题】(1月12日-day30)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复