求助VC++高手来对下列7道编程题进行解答:

来源:百度知道 编辑:UC知道 时间:2024/09/27 23:27:54
1:编程对用户输入一个含有10个整数的一维数组,分别计算数组中所有正数和所有负数的和。
2:有3个字符串(每个不超过20个元素),要求找出其中最小者。
分析:可以充分利用字符串处理函数strcmp来比较大小,我们在这里先定义一个二维的字符数组str,大小为3*20,可以把str[0],str[1],str[2]看作3个一维字符数组(它们各有最多20个元素)来进行处理,
3.有一个数组,内放10个整数,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换。
4.水仙花数。如果一个正整数等于组成该数的各个数字的立方和,则称该数为水仙花数,亦称阿姆斯特朗数。如407=43+03+73,407是一个水仙花数。试编写求100~999之间的所有水仙花数的程序。
5.编写一程序,将两个字符串连接起来,不用strcat函数。
6.编写一程序,将字符串s1和s2比较,如果s1>s2,输出一个正数;s1=s2,输出0;s1<s2,输出一个负数。不用strcmp函数。两个字符串用gets函数读入。
7.编写一程序,将字符数组s2中的全部字符拷贝到字符数组s1中。不用strcpy函数。拷贝时,’\0’也要拷贝过去。’\0’后面的字符不拷贝。

请分开提问,谢谢
4
bool IsNarciss(int n){ //是否水仙花数
int nDigit=(int)ceil(log10(n+1)),sum=0,num=n;
if (nDigit<2) return false;
for (int i=0;i<nDigit;i++){
sum+=(int)pow(n%10,nDigit);
n/=10;
}
if (sum==num) return true;
return false;
}

void main(){
for (int i=100;i<1000;i++) if (IsNarciss(i)) cout<<i<<"是水仙花数。"<<endl;
}