请一道C语言题目的算法.
程序源代码我有了,~就是不太理解.请各位高人帮帮忙.~帮我说一下算法,细致一点,谢谢了.~~~最主要的是FOR循环里面的那些语句能不能着重的说一下.刚学的菜鸟.~大家见笑...
程序源代码我有了,~就是不太理解.
请各位高人帮帮忙.~帮我说一下算法,细致一点,谢谢了.~~~
最主要的是FOR循环里面的那些语句能不能着重的说一下.
刚学的菜鸟.~大家见笑了.~
#include <stdio.h>
#include <string.h>
int inverse(char str[])
{
char t;
int i,j;
for(i=0,j=strlen(str);i<j;i++,j--)
{
t=str[i];
str[i]=str[j-1];
str[j-1]=t;
}
}
main()
{
char str[100];
printf("请输入一个字符串:\n");
scanf("%s",str);
printf("转换前字符串为:\n%s\n");
inverse(str);
printf("转换后字符串为:\n%s\n");
} 展开
请各位高人帮帮忙.~帮我说一下算法,细致一点,谢谢了.~~~
最主要的是FOR循环里面的那些语句能不能着重的说一下.
刚学的菜鸟.~大家见笑了.~
#include <stdio.h>
#include <string.h>
int inverse(char str[])
{
char t;
int i,j;
for(i=0,j=strlen(str);i<j;i++,j--)
{
t=str[i];
str[i]=str[j-1];
str[j-1]=t;
}
}
main()
{
char str[100];
printf("请输入一个字符串:\n");
scanf("%s",str);
printf("转换前字符串为:\n%s\n");
inverse(str);
printf("转换后字符串为:\n%s\n");
} 展开
1个回答
展开全部
-----------------------------------
char str[100];
printf("请输入一个字符串:举迟\n");
scanf("%s",str);
printf("转换前字符串为:\n%s\n");
inverse(str);
-----------------------------------
开始的时候,弄一个长度最多为100的char数组,然后把这个数组作为参数给inverse这个function.inverse得到这个参数之后开始运行。
-----------------------------------
for(i=0,j=strlen(str);i<j;i++,j--)
{
t=str[i];
str[i]=str[j-1];
str[j-1]=t;
}
-----------------------------------
for(起始条件;运行条件;每一循环结束后的附加计算)
这个for的起始条件是:i=0 而且 j=参数数组的具体长度(strlen取得数组的具体长度,而不是最大长度)
size_t strlen ( const char * str );
Returns the length of str.
http://www.cplusplus.com/reference/clibrary/cstring/strlen/
这个for的运行条件是:i < j。也就是说,只要i<j,那么就运行for后面大括号的内容。
每正早李一循环睁谨结束后的附加计算:i = i + 1; j = j - 1.
如果数组是 abcdefg
那么第一次循环 i = 0, j = 7;
第二次循环 i = 1, j = 6;
第三次 i = 2, j = 5;
...
希望楼主能明白
char str[100];
printf("请输入一个字符串:举迟\n");
scanf("%s",str);
printf("转换前字符串为:\n%s\n");
inverse(str);
-----------------------------------
开始的时候,弄一个长度最多为100的char数组,然后把这个数组作为参数给inverse这个function.inverse得到这个参数之后开始运行。
-----------------------------------
for(i=0,j=strlen(str);i<j;i++,j--)
{
t=str[i];
str[i]=str[j-1];
str[j-1]=t;
}
-----------------------------------
for(起始条件;运行条件;每一循环结束后的附加计算)
这个for的起始条件是:i=0 而且 j=参数数组的具体长度(strlen取得数组的具体长度,而不是最大长度)
size_t strlen ( const char * str );
Returns the length of str.
http://www.cplusplus.com/reference/clibrary/cstring/strlen/
这个for的运行条件是:i < j。也就是说,只要i<j,那么就运行for后面大括号的内容。
每正早李一循环睁谨结束后的附加计算:i = i + 1; j = j - 1.
如果数组是 abcdefg
那么第一次循环 i = 0, j = 7;
第二次循环 i = 1, j = 6;
第三次 i = 2, j = 5;
...
希望楼主能明白
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询