求大神 几道c++作业题
2个回答
展开全部
#include<ctime>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
using namespace std;
int calcu(int t){
return t*t*t;
}
void work1(){
printf("作业一:\n");
//不知道你书上是啥
//水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。是这个么?百度查的
//考虑 n=3的情况
for(int i=1;i<=9;i++)
for(int j=0;j<=9;j++)
for(int k=0;k<=9;k++)
if(calcu(i)+calcu(j)+calcu(k)==i*100+j*10+k)
printf("%d%d%d\n",i,j,k);
}
void work2(){
printf("作业二:\n");
double a[21];
double x,y;
for(int i=1;i<=20;i++){//用伪随机可能比系统的随机要好,因为系统出来的值一般非常大,不信你可以注释掉这个构造过程
srand(i+time(0));
x=rand()%(1423333);
srand(i*i-i*5+time(0));
y=rand()%(1423333);
a[i]=x/y;
}
printf("随机出的数组为:\n");
for(int i=1;i<=20;i++)
printf("%lf ",a[i]);
double biggest=0,second=0;
for(int i=1;i<=20;i++)
if(a[i]>biggest){
second=biggest;
biggest=a[i];
}
printf("\n次大数:%lf\n",second);
}
void work3(){
printf("作业三:\n");
char n[1000];
int num[1000],len; //感觉没看懂题目意思,反正把数字当成字符串处理超简单的,就这样办了(这样就不管提示什么事了...)
scanf("%s",n);
len=strlen(n);
for(int i=0;i<len;i++){
num[i]=n[i]-'0';
printf("%d ",num[i]);
}
printf("\n");
}
void work4(){
printf("作业四:\n");
char ch[1000];
scanf("%s",ch);
int len=strlen(ch),cot[129]={0};
for(int i=0;i<len;i++)
cot[ch[i]]++;
for(int i=0;i<=128;i++)
if(cot[i])
printf("%c has showed up for %d times.\n",i,cot[i]);
}
int main(){
work1();
work2();
work3();
work4();
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询