| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3114 人关注过本帖
标题:指针求解
只看楼主 加入收藏
楚川杉
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2020-3-10
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:11 
指针求解

图片附件: 游客没有浏览图片的权限,请 登录注册

这道题我想用指针来做,该怎么做呢?
搜索更多相关主题的帖子: 指针 
2020-03-11 23:48
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:1 
先把代码写出来
2020-03-12 02:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:1 
这道题我想用指针来做,该怎么做呢?
没听懂,怎么可能有什么算法是必须用指针的,否则没有指针的编程语言岂不是完成不了啦?

程序代码:
#include <stdio.h>

int main( void )
{
    unsigned n;
    scanf( "%u ", &n );

    for( char ch; ch=getchar(), ch>='a' && ch<='z'; )
        putchar( (ch-'a'+n)%26+'a' );
    putchar( '\n' );
}

2020-03-12 09:11
linux_qqlb
Rank: 2
等 级:论坛游民
威 望:1
帖 子:4
专家分:23
注 册:2020-3-11
收藏
得分:1 
写个伪代码把

例如:
   char letters[50]={a~z};  
   char *pser=NULL;
   int  m;
   int n;
   输入 第一行 n
   第二行 几个字母
   将pser 移动到 letter的对应的地方  用for循环加计数的方法得到偏移 m
    pser=letter+m;
    pser=pser - n;
    *pser即对应的字母,注意 要有越界的判断,pser>p+49 ,pser要从0偏移位置开始计算,以免越界



   
   

   

   free(p);
   
2020-03-12 09:15
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
收藏
得分:1 
指针很简单的,不过有时指针也很麻烦不靠谱,如:int aa = 4;string* a,a=new string[aa];a[0]="aaaaaaaaaaaaaaa";strlen((char*)&a[0]+3)得到的结果似有似无的。不过这题不会出现问题。
小写a~z字符的值从97-122用求余即可实现。
昨天刚好回了一个题目,正好可以稍加修改做这题目,:
图片附件: 游客没有浏览图片的权限,请 登录注册

有了上面一步,接着写下一步求余罗圈
图片附件: 游客没有浏览图片的权限,请 登录注册

准备好以上2步即可着手写指针处理函数了
    char aa[111]{}; int a = 0; cin >> aa >> a;
    输出移位字符(aa, a); cout << aa;

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2020-3-12 11:13编辑过]

2020-03-12 09:47
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:1 
以下是引用xianfajushi在2020-3-12 09:47:37的发言:

你的实现有很多问题
1.
 a[j] - '\0' 这个减法 不知道是在做什么?
'\0' 就是 0
a[j] - 0 就是 a[j]
c = a[j]; 就完事了 多写一个减法不知道是在做什么?

2.
ends的使用也是 迷惑行为
ends是写入一个 '\0' 根本不是给cout 使用的参数





https://zh.
2020-03-12 11:59
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:1 
我也没发啥啊,我把刚刚的话复制一下
版主大大有无上的权利,作为平民的我们听着就行了,每一串代码都代表个人的思维,智慧的深奥的浅显的都有值得学习的地方,版主大大一般会写智慧的代码,给人带来灵感也会有育人的目的,这是我心中最完美的版主大大形象
( ps::  版主大大有无上的权利这句话的意思是能当上版主说明有他过人之处,为什么呢?因为版主大大的智慧都浓缩在代码里,不论是新手还是老手的代码,他们的思维都用代码体现,所以都值得学习,不过呢,版主的代码有育人的目的,给人灵感,所以作为新手的我们,听着就行,吸收有灵感的部分,取长补短  )
收到的鲜花
  • xianfajushi2020-03-12 15:58 送鲜花  1朵  

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-12 15:41
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:1 
程序代码:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int main(){
    string s;
    int n,i,j;
    cin>>n;
    cin>>s;
    for(i=0;i<s.size();i++)
{
        for(j=1;j<=n;j++)
    {
        ++s[i];
        if(s[i]>'z')
        s[i]='a';
    }
}
cout<<s;
return 0;    
}
2020-03-12 16:49
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{int n=0;int count=0;int i=0;
      char a[50];char b[50];
      scanf("%d",&n);   //不接受n
      scanf("%s",a);      
       for ( i=0;a[i];++i){
       b[i]=a[i]+n;
       if(b[i]>('z'))
       {b[i]=(char)(b[i]-26);}    
      printf("%c",b[i]);}
}


[此贴子已经被作者于2020-3-12 20:35编辑过]


把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-12 18:25
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
程序代码:
//终于改对了
#include <stdio.h>
#include <stdlib.h>
int main(void)
{int n=0;int count=0;int i=0;
      char a[50];char b[50];
      scanf("%d",&n);   
      scanf("%s",a);      
       for ( i=0;a[i];++i){
       b[i]=a[i]+n;
       if(b[i]>('z'))
       {b[i]=(char)(b[i]-26);}    
      printf("%c",b[i]);}
}


把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-12 20:25
快速回复:指针求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021045 second(s), 12 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved