对大家有帮助的问答会被标记为“推荐”,看完课程过来浏览一下别人提的问题,会帮你学得更全面
typedef void (*MYF)(int);
typedef int (*MYF)(int);
分别都是什么意思
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
void swap(char* a,char* b)
{
int t=*a;
*a=*b;
*b=t;
}
void pai(char* buf,int k)
{
int n=strlen(buf);
char ch[27];
for(char i='A';i<='Z';i++)
{
ch[i]++;
}
if(k==n) cout << buf <<endl;
for(int i=k;i<=n;i++)
{
ch[*(buf+k)]++;
if(ch[*(buf+k)]>2)
{
continue;
}
swap(buf+k,buf+i);
pai(buf,k+1);
swap(buf+k,buf+i);
}
}
int main()
{
char p[4];
cin >> p;
pai(p,0);
return 0;
}
想要拓展问题的代码
不知道哪里出的问题
2. 把串传递给函数,又害怕函数改变串的内容,怎么办?:
A 形参类型标记为:char * const
B 形参类型标记为:char const *
C 告诉写函数的那个家伙小心点,别把传进来的串碰坏了。
D 形参标记为:char* const &
A,B的区别是什么
#include <iostream>
using namespace std;
void set_nth(unsigned char* data,int n,bool x)
{
int a=n/8,b=n%8; //?????????????????????
if(x)
{
data[a] |= 0x80>>b;
}else{
data[a] &= ~(0x80>>b);
}
}
bool get_nth(unsigned char* data,int n)
{
int a=n/8,b=n%8;
return data[a] & (0x80 >> b);
}
int main()
{
unsigned char data[20];
set_nth(data,100,true);
cout << get_nth(data,100) << endl;
return 0;
}
一、a=n/8 及 b=n%8
上式中8代表的都是什么
假设n=100,则a=100/8=12,b=100%8=4,a为什么得到的结果是第几字节,b为什么是那个字节第几位
为什么-1>>1=-1,我的想法是-1的16位二进制码为:1000 0000 0000 0001,如果向右移位则为0100 0000 0000 0000,不知道是哪里的问题
#include <iostream>
using namespace std;
int** get_table()
{
int** p=new int* [9+1];
for(int j=0;j<9;j++)
{
p[j]=new int[j+1+1];
p[j][0]=j+1; //?????????????
for(int i=1;i<j+1+1;i++) p[j][i]=i*(j+1);
}
p[9]=NULL;
return p;
}
int main()
{
int** p=get_table();
cout << (p[6])[0] << endl; //????????????
for(int** q=p;*q;q++) delete [] *q;
delete [] p;
return 0;
}
为什么要设置p[j][0]=j+1,后边设置i的循环假设代入i=1,j=0,则p[0][1]=1,而p[0][0]=1,我觉得有点多此一举
为什么主函数输出的时候要把p[6]套上括号
#include <iostream>
using namespace std;
int** get_table()
{
int** p=new int* [9+1];
for(int j=0;j<9;j++)
{
p[j]=new int[j+1+1];
p[j][0]=j+1; //?????????????
for(int i=1;i<j+1+1;i++) p[j][i]=i*(j+1);
}
p[9]=NULL;
return p;
}
int main()
{
int** p=get_table();
cout << (p[6])[0] << endl; //????????????
for(int** q=p;*q;q++) delete [] *q;
delete [] p;
return 0;
}
为什么要设置p[j][0]=j+1,后边设置i的循环假设代入i=1,j=0,则p[0][1]=1,而p[0][0]=1,我觉得有点多此一举
为什么主函数输出的时候要把p[6]套上括号
1.为什么这个N=x*20,怎么算出来的;
2.为什么a[i]中每个i都加2,是因为素数从2开始吗