047:指针练习:ForEach

047:指针练习:ForEach
总时间限制: 1000ms 内存限制: 65536kB
描述
程序填空,使得输出结果为:

1,4,9,16,25,
h,e,l,l,o,!,

#include <iostream>
using namespace std;

void ForEach(void * a, int width, int num,
// 在此处补充你的代码
)

{
    for(int i = 0;i < num; ++i) 
        f((char*)a+width*i);
}

void PrintSquare(void * p)
{
    int * q = (int*)p;
    int n = *q;
    cout << n * n << ",";
}
void PrintChar(void * p) {
    char * q = (char*)p;
    cout << *q << ",";
}
int main()
{
    int a[5] = {1,2,3,4,5};
    char s[] = "hello!";
    ForEach(a,sizeof(int),5,PrintSquare); 
    cout << endl;
    ForEach(s,sizeof(char),6,PrintChar);
    return 0;
}

输入

输出
1,4,9,16,25,
h,e,l,l,o,!,
样例输入

样例输出
1,4,9,16,25,
h,e,l,l,o,!,
代码

#include <iostream>
using namespace std;

void ForEach(void * a, int width, int num,
void (*f)(void *)// 在此处补充你的代码
)

{
    for(int i = 0;i < num; ++i) 
        f((char*)a+width*i);
}

void PrintSquare(void * p)
{
    int * q = (int*)p;
    int n = *q;
    cout << n * n << ",";
}
void PrintChar(void * p) {
    char * q = (char*)p;
    cout << *q << ",";
}
int main()
{
    int a[5] = {1,2,3,4,5};
    char s[] = "hello!";
    ForEach(a,sizeof(int),5,PrintSquare); 
    cout << endl;
    ForEach(s,sizeof(char),6,PrintChar);
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 存活 样子赧然 我牵着时间的牛鼻子在乡间狂奔 对比我点头赞美 让双脚停下来 对证稻田一垄一垄的沟坎 刚发芽的梦便拦...
    月階霜滿除阅读 257评论 0 0
  • 感情世界里,天天找你不一定是爱你 也可能和朋友打赌输了。 尊严大过爱情。可尊严又是什么? 尊严是自己及别人都尊重的...
    井底的动物阅读 165评论 0 0
  • 古老的夜晚和远方的音乐是永恒的,但那不属于我
    ban熟状态阅读 287评论 0 0