c语言上机试题

[复制链接]
查看11 | 回复4 | 2013-2-20 10:10:58 | 显示全部楼层 |阅读模式
问题:首先k的作用不是确定奇数的位次吗?为什么else后面是k=n-2,难道不应该是k=n吗?解答:k是最后一个奇数位置;n为奇数时,k=n是串结束符‘\0’的位置,所以最后奇数位置,是k = n-2;下面是测试过的代码!!!#include void fun(char *s){int i, n, k;char c;n = 0;for (i=0; s!='\0'; i++)n++;if (n%2 == 0)k=n-1;
/*填好后的代码,已经测试过了 *///k = n-___1___;/* 这里填1 */elsek = n-2;
...
回复

使用道具 举报

千问 | 2013-2-20 10:10:58 | 显示全部楼层
#include void fun(char *s){ int i,n,k; char c; n=0; for(i=0;s!='\0';i++) n++; if(n%2==0)k=n-1; else k=n-2; c=s[k]; for(i=k-2; i>=1; i=i-2)...
回复

使用道具 举报

千问 | 2013-2-20 10:10:58 | 显示全部楼层
1)k=n-1;2)c=s[k];3)s[1]=c;k的作用是找到最后一个下标为基数的位置,k=n-2,是因为数组的长度是从0开始的,要是不减就超范围了...
回复

使用道具 举报

千问 | 2013-2-20 10:10:58 | 显示全部楼层
k是最后一个奇数位字符的下标1、12、s[k]3、c...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行