int ss (int b) {
int a=1,n;
for (n=2;n
}
return a; }
2) 解决本题的算法思路描述 编写一个求素数的函数
主函数中定义一个含50个元素的数组
当该变量的值位于100到200之间时,将该变量的值赋给数组中的元素,并与前面所有值进行比较,若重复,则重新赋值。
不断循环,直到数组中的每个数都被赋值
输出数组中的各个数,依次用求素数的函数判断该数组中的元素是否为素数,是则输出。
3) 调试过程的记载(包括出现的错误,以及修改) 编写求素数的函数时,i从0开始,导致循环无法实现。
4) 归纳本题应用的知识点或算法 For循环,break语句的使用 函数的调用
生成随机数函数的使用 if语句及数组
3)编写一个函数实现将一个十六进制整数转换为一个十进制整数。例如,输入”A2”转换为162。 提示:循环对读入的每个字符转换成对应的十进制数字,比如’1’的值为1,’A‘为10,’F’为15,将转换后得到的数字进行计算处理。 函数的原型可以声明为:
int funChange(char s[]); //函数的功能是将s数组存放的字符串转换为十进制数值返回,参数应采用数组名传递方式,即形参数组与实参数组共用同一地址空间。 要求:
1) 程序原代码。(直接粘贴在此)
#include using namespace std; int funchange (char s[]) {
int i,m,b[100],sum=0; for(i=0;s[i]!=0;i++) { if(s[i]>='0'&&s[i]<='9') { b[i]=(int(s[i])-48); } elseif(s[i]>='a'&&s[i]<='f')
b[i]=int(s[i])-87;
elseif(s[i]>='A'&&s[i]<='F')
b[i]=int(s[i])-55; } m=i;
for(i=0;i return sum; }
int main( ) {
char s[20];
cout<<\请输入要转换的十六进制数字\ cin.getline(s,20);
cout<<\转化成十进制为:\ cout<}
2) 解决本题的算法思路描述 用一个字符数组记录该十六进制数
将该数的每一位分别转换为十进制数并用数组b[100]记录, 用一重循环对其进行求和即可
3) 调试过程的记载(包括出现的错误,以及修改?)
头文件的int funchange (char s[])括号中忘记加chars[];
4) 归纳本题应用的知识点或算法
数组的使用,if-else语句的使用,for循环的使用,函数的调用
4)编写函数验证哥德巴赫猜想,任意一个充分大的偶数均可表示成两个素数之和。要求定义两个函数,一个函数判断一个整数是否是素数,另一个函数验证哥德巴赫猜想,即将一个偶数分解为两个素数,并返回这两个素数。利用函数的嵌套调用完成(即在验证哥德巴赫猜想的函数中调用判断素数函数)。例如 8=3+5这样的显示信息在主函数中完成。
要求:
1) 程序原代码。(直接粘贴在此)
#include using namespace std; int su(int a) {
int m,n=1,i; for(i=2;i