c语言练习12周(15~16)
编写int fun(char s[])函数,返回字串中所有数字累加和
题干 | 编写int fun(char s[])函数,返回字串中所有数字累加和。 若传入串"k2h3yy4x"返回整数9;若传入串"uud9a6f7*"返回整数22 |
//只填写要求的函数
int fun(char a[]) {
int i = 0, s = 0;
while (a[i]) {
if (a[i] > '0' && a[i] < '9') {
s += (a[i] - '0');
}
i++;
}
return s;
}
编写void fun(int a,int b)函数,将整型参数a,b的和差积商,通过整型全局变量h,c,j,s返回
题干 | 编写void fun(int a,int b)函数,将整型参数a,b的和差积商,通过整型全局变量h,c,j,s返回,四个全局变量已经定义。 若传入18,6返回24,12,108,3。 |
//只填写要求的函数
void fun(int a,int b){
h=a+b;
c=a-b;
j=a*b;
s=a/b;
}
编写double fun(int a[],int n,int b[])函数,返回一维数组a中n个正整数的平均值,大于平均值的各数按顺序通过b数组返回,b数组各元素初始为0。
题干 | 编写double fun(int a[],int n,int b[])函数,返回一维数组a中n个正整数的平均值,大于平均值的各数按顺序通过b数组返回,b数组各元素初始为0。 若a数组为[10,2,3,4,5,6,7,8,9,1],函数返回5.5,b数组返回[10,6,7,8,9,0,0,0,0,0]。 |
//只填写要求的函数
double fun(int a[], int n, int b[]) {
int i, j=0;
double s = 0;
for (i = 0; i < n; i++) {
s += a[i];
}
s = s / n;
for (i = 0; i < n; i++) {
if (a[i] > s) {
b[j++] = a[i];
}
}
return s;
}
编写void fun(unsigned long a)函数,求整型参数a中各位数字是123的个数,通过整型全局变量
题干 | 编写void fun(unsigned long a)函数,求整型参数a中各位数字是123的个数,通过整型全局变量c1,c2,c3返回,三个全局变量已经定义。 若传入1122333145返回3,2,3。 |
//只填写要求的函数
void fun(unsigned long a) {
while (a) {
int t = a % 10;
if (t == 1) c1++;
else if (t == 2) c2++;
else if (t == 3) c3++;
a /= 10;
}
}
编程判断两数是否为亲和数,是显示true否则显示false。
题干 | 编程判断两数是否为亲和数,是显示true否则显示false。 亲和数是指两正整数中,彼此的全部真约数(除了本身)之和与另一方相等,如220的约数1+2+4+5+10+11+20+22+44+55+110=284,而284的约数和等于220。 其他的亲和数如:1184和1210、2620和2924、5020和5564等。 输入第一行整数T为组数 后面输入T组测试数 | ||
输入样例 | 2 220 284 1184 1212 | ||
输出样例 | true false |
#include<cstdio>
#include<iostream>
using namespace std;
int main(){
int n,a,b,count=0,count1=0;
cin>>n;//组数
for(int i=1;i<=n;i++){
cin>>a>>b;//两个数
count=count1=0;
for(int j=1;j<a;j++){
if(a%j==0)count+=j;
}
for(int k=1;k<b;k++){
if(b%k==0)count1+=k;
}
if(count==b&&count1==a)cout<<"true"<<endl;
else cout<<"false"<<endl;
}
return 0;
}