C语言的问题.
发布网友
发布时间:2024-12-03 07:39
我来回答
共3个回答
热心网友
时间:2024-12-12 10:05
算法如下:
首先定义一个一维数组来存储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语言程序了。
在做任务,能给个最佳不?谢谢了
热心网友
时间:2024-12-12 10:05
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);
}
有问题请追问 满意记得采纳哦
热心网友
时间:2024-12-12 10:05
思路
用ASC码来算
判断S1的每个元素的ASC码所在的区域是不是在大写或者小写的范围内
是的话 大写字母就+ 小写字母就- 传入到S2中
S3用个FOR循环就行了 从后往前赋值追问能给个算法不 我也是这么想 但不知道算法怎么写
CHAR S1[]=Hello,Jane.
追答算法如下
if(s[i] >= 'A' && s[i] <= 'Z') //判断是不是大写字母
s[i] += 32; //转换成小写
小写的-32就可以了