SparkStreaming消费kafka中的数据

OpenHarmony-DevEco应用签名

  返回  

考研c语言编程

2021/8/21 23:22:12 浏览:

最近复习考研c语言的简单编程
以水仙花数为例
问题描述
输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 1的3次方 + 5的3次方 + 3的3次方。

算法设计
“水仙花数”是指满足某一条件的三位数,根据这一信息可以确定整数的取值范围是 100〜999。对应的循环条件如下:

利用for循环
for(n=10; n<1000; n++)
{
//…
}

对代码的说明:

将n整除以100,得出n在百位上的数字hun。
将(n-i*100)整除以10(或将n先整除以10再对10求模n/10%10),得出n在十位上的数字ten。
将n对10取余,得出n在个位上的数字ind。
求得这三个数字的立方和是否与其本身相等,若相等,则该数为水仙花数。

对于每个位置上的数值将其拆分的算法有很多种,根据不同情况选择不同算法(对于同一问题不同算法的效率有时会相差很多)。

代码实现
C语言

EOF,为End Of File的缩写,通常在文本的最后存在此字符表示资料结束。
在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。

#include<stdio.h>

int main(){
int m,n;
while(scanf("%d%d",&m,&n)!=EOF){
int t=0;
for(int i=m; i<=n; i++){
int a=i/100;
int b=i%100/10;
int c=i%10;

        if(i==a*a*a+b*b*b+c*c*c && t==0){
            printf("%d ",i);
            t++;
        }
        else if(i==a*a*a+b*b*b+c*c*c && t==1){
            printf("%d ",i);
        }
    }
    if(t!=0){ printf("\n"); }
    if(t==0){ printf("no\n"); }
}
return 0;

}
二费氏数列:斐波那契数列
(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……这个数列从第3项开始,每一项都等于前两项之和。在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。

#include<stdio.h>
#include<stdlib.h>

#define N 20

int main(void) {
int Fib[N] = {0};
int i;

Fib [0] = 0;
Fib [1] = 1;

for(i = 2;i < N;i++)
Fib[i] = Fib[i-1] + Fib[i-2];

for(i = 0;i < N;i++)
printf("%d、",Fib[i]);
printf("\n");

return 0;

}
三.下对于简单的编程基本讲解
一,求三个整数的最大值
#include <stdio.h>

int main(void)
{
int a, b, c;
int x=0;
printf(“请输入三个数:\n”);
scanf("%d %d %d",&a,&b,&c);

if(a>b&&a>c)
	x=a;
if(b>a&&b>c)
	x=b;
if(c>a&&c>b)
	x=c;
printf("max=%d\n",x);

return 0;

}

二,输入10个数,输出最大的那个数
#include <stdio.h>

int main(void)
{
int i, a[10], s=0;
printf(“请输入十个数:\n”);
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<=9;i++)
if(s<a[i])
s=a[i];
printf(“最大的数是:%d\n”,s);

return 0;

}

三,判断2000-2500年的闰年,并输出
#include <stdio.h>

int main(void)
{
int i, x=0;
for(i=2000;i<=2500;i++){
if((i%40&& i%100!=0)||i%4000)
printf("%d is a leap year!\n",i);
else
printf("%d is not a leap year!\n",i);
}
}

四,1加到100
#include <stdio.h>

int main(void)
{
int i, sum=0;

for(i=1;i<=100;i++){
	sum=sum+i; 
}
printf("sum=%d\n",sum);

return 0;

}

五,1-1/2+1/3…-1/100
#include <stdio.h>

int main(void)
{
float i, sign=1, sum=0;
for(i=1;i<=100;i++){
sum=sum+sign/i;
sign=(-1)*sign;
}
printf("%f\n",sum);

return 0;

}

六,判断一个数能否同时被3和5整除
#include <stdio.h>

int main(void)
{
int n;
printf(“输入一个数:”);
scanf("%d",&n);
if(n%30&&n%50)
printf(“可以被整除\n”,n);
else
printf(“不可以被整除\n”,n);

return 0;

}

七,n个元素的数组a中,数从小到大排列,从大到小输出
#include <stdio.h>

int main(void)
{
int i,j,a[100],s=0,n;
printf(“n:\n”);
scanf("%d",&n);
printf(":\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(a[i]>a[j]){
s=a[i];
a[i]=a[j];
a[j]=s;
}
}
}
for(i=0;i<n;i++)
printf("%d “,a[i]);
printf(”\n");
for(i=n-1;i>=0;i–)
printf("%d ",a[i]);

return 0;

}

八,九,将大写字母变成小写字母 (小->大)
#include <stdio.h>

int main(void)
{
char c1, c2;
scanf("%c",&c1);
c2=c1+‘a’-‘A’; //c2=c1+‘A’-‘a’;
printf("%c",c2);

return 0;

}

十,输入字符,最终按小写输出
#include <stdio.h>

int main(void)
{
char ch;
scanf("%c",&ch);
ch=(ch>=‘A’&&ch<=‘a’)?(ch+‘a’-‘A’):ch;
printf("%c\n",ch);

return 0;

}

十一,求三角形面积
#include <stdio.h>
#include <math.h>

int main(void)
{
double a, b, c, s, area;
printf(“please input:”);
scanf("%lf %lf %lf",&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a){
	s=(a+b+c)/2;
	area=sqrt(s*(s-a)*(s-b)*(s-c));
	printf("area is %f\n",area);
	
	return 0;
}
else;

}

十二,通过三角形三个点坐标求面积
typedef struct
{
double x;
double y;
}Point;

double get_square(Point p0, Point p1, Point p2)
{
double area=0;
area=p0.xp1.y+p1.xp2.y+p2.xp0.y-p1.xp0.y-p2.xp1.y-p0.xp2.y;
return area/2;
}

十三,请编程序将“China”译成密码,分别用putchar和printf函数输出这5个字符
#include<stdio.h>

int main()
{
char c1=‘C’,c2=‘h’,c3=‘i’,c4=‘n’,c5=‘a’;
c1 += 4;
c2 += 4;
c3 += 4;
c4 += 4;
c5 += 4;
printf(“用printf输出密码为:%c%c%c%c%c\n”, c1, c2, c3, c4, c5);
printf(“用putchar输出密码为:”);
putchar(c1);
putchar(c2);
putchar(c3);
putchar(c4);
putchar(c5);
printf("\n");

return 0;

}

十四,输出成绩以ABCDE输出
#include<stdio.h>

int main()
{
int mark;
scanf("%d",&mark);
switch (mark/10)
{
case 10:
case 9:
printf(“A\n”);
break;
case 8:
printf(“B\n”);
break;
case 7:
printf(“C\n”);
break;
case 6:
printf(“D\n”);
break;
default:
printf(“E\n”);
break;
}
}

十五,输出2的N次幂:1,2,4,8…到2^N
#include <stdio.h>
#define N 16

int main(void)
{
int n;
int val=1;

printf("\t  n \t     2^n\n");
printf("\t================\n");
for (n=0;n<=N;n++){
	printf("\t%3d \t %6d\n",n,val);
	val=2*val;
}
return 0;

}

十六,判断一个数是不是素数
#include <stdio.h>

int main(void)
{
int i,num,tag=1;
scanf("%d",&num);
if(num1)
return 0;
for(i=2;i<num;i++)
{
if(num%i
0)
{
tag=0;
break;
}
}
if(tag==1)
printf(“it is do a prime number”);
else
printf(“it is not a prime number”);

return 0;

}

十七,输出2-300间的素数
#include <stdio.h>

int main(void)
{
int i;
for(i=2;i<=300;i++)
if(prime_num(i)==1)
printf("%d ",i);
return 0;
}

int prime_num(int m)
{
int j;
for(j=2;j<m;j++)
{
if(m%j==0)
return 0;
}

return 1;

}

十八,求2+22+222+2222+…共五项
#include <stdio.h>

int main()
{
int temp,i,j,a,n,sum=0;
scanf("%d %d",&a,&n);
temp=a;
for(i=0;i<n;i++)
{
sum=sum+a;
printf("%d + “,a);
a=a*10+temp;
}
printf(”=%d",sum);

return 0;

}

十九,编程1!+2!+3!+4!+5!+6!…的值
#include <stdio.h>

int main()
{
int i, j, k, sum=0,ret = 1;
scanf("%d",&k);
for ( i = 1; i <=k ; i++)
{
ret = i*ret;
sum = sum + ret;
}
printf("%d", sum);

return 0;

}

二十,自然底数e的计算公式,最后一项<10^-10的时候结束
#include <stdio.h>

int main()
{
float e=1.0,n=1.0;
int i=1;
while(1/n>1e-10)
{
e+=1/n;
i++;
n=i*n;
}
printf(“e的值为:%f\n”,e);

return 0;

}
————————————————
版权声明:本文为CSDN博主「手机只用华为」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Tangjiawei222/article/details/105436369

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号