C语言的问题.

发布网友

我来回答

3个回答

热心网友

算法如下:
首先定义一个一维数组来存储S1
1 大小写转换:按循环 依次判定数组每个元素是大写还是小写(大于等于a的是小写,否则为大写)。如果是大写 那么a[i]=a[i]+32 如果是小写 a[i]=a[i]-32,i++ 这样就完成大小写转换。
2 倒叙复制:直接用循环依次复制数组元素即可:
for(i=N,j=0;i>0;i--,j++)s[j]=a[i]

以上就是算法大致过程 根据这个思路应该能写出相应的C语言程序了。

在做任务,能给个最佳不?谢谢了

热心网友

S1原型输出:Hello,Jane.
S1大小写转换后:hELLO,jANE.
S1逆序后:.enaJ,olleH
Press any key to continue

#include "stdio.h"
main()
{
int i,j;
char S1[]="Hello,Jane.";
char S2[30]="\0";
char S3[30]="\0";
printf("S1原型输出:%s\n",S1);
for (i=0,j=0;S1[i]!='\0';i++)
{
if (S1[i]>='a' && S1[i]<='z')
{
S2[j++] = S1[i]-32;
}
else if (S1[i]>='A' && S1[i]<='Z')
{
S2[j++] = S1[i]+32;
}
else
{
S2[j++] = S1[i];
}
}
printf("S1大小写转换后:%s\n",S2);
j=0;i--;
while (i>=0)
{
S3[j++]=S1[i--];
}
printf("S1逆序后:%s\n",S3);
}
有问题请追问 满意记得采纳哦

热心网友

思路
用ASC码来算
判断S1的每个元素的ASC码所在的区域是不是在大写或者小写的范围内
是的话 大写字母就+ 小写字母就- 传入到S2中
S3用个FOR循环就行了 从后往前赋值追问能给个算法不 我也是这么想 但不知道算法怎么写
CHAR S1[]=Hello,Jane.

追答算法如下
if(s[i] >= 'A' && s[i] <= 'Z') //判断是不是大写字母
s[i] += 32; //转换成小写

小写的-32就可以了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com