‘壹’ 求c语言代码
几个人没一个说明白的。
第一题是求素数平方和。先用筛法算素数,再求和。但楼主你没给数据范围,也没给输入输出格式,暂且算到1024
#defineN1024
voidCalculatePrime(intin[])
{
inti=0;
intj;
in[0]=in[1]=-1;
for(i=2;i<N;i++)
{
if(in[i]==0)
for(j=i*2;j<N;j+=i)
in[j]=-1;
}
}
intmain()
{
intprime[N]={0};
inti,n;
longlongsum;
CalculatePrime(prime);
printf("Inputn(n<%d):",N);
scanf("%d",&n);
for(i=2,sum=0;i<=n;i++)
{
if(prime[i]==0)
sum+=(i*i);
}
printf("resultis%lld ",sum);
return0;
}
第二题没什么说的,就是一个下三角的矩阵,同样,你没给输入数据的范围和格式,我只能按一般要求写
intmain()
{
intk,i,j;
printf("Inputk:");
scanf("%d",&k);
for(i=0;i<k;i++)
{
for(j=0;j<k-i-1;j++)
printf("");
for(;j<k;j++)
printf("+");
printf(" ");
}
return0;
}
第三题题目表述不清,两站往返的车票算1种还是算2种?如果不算回程,换句话说,如果默认终点站编号永远比起点号大,那就是简单的组合问题,程序上就是输出一个上三角的矩阵。
intmain()
{
intn,i,j;
printf("Inputn:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
printf("%d-%d",i,j);
printf(" ");
}
return0;
}
如果要求算回程,那就是排列问题,需要把下三角那部分也输出,你自己改一下j的初值就好,但要把矩阵对角线排除。
第四题是典型的递归问题,是杭电ACM平台的Problem 2018,思路很简单,今年的牛包括两类,一类是去年的老牛,一类是今年新出生的小牛,而今年出生的小牛和3年前的牛数量相等(因为3年前的所有牛都可以下小牛了)。即 f(n) = f(n - 1) + f(n - 3);
以下代码杭电OJ测试Accept,保证正确,但我把OJ要求的循环输入删掉了,对你没有影响。
longlongcow(intn)
{
if(n>=1&&n<=3)
returnn;
else
returncow(n-1)+cow(n-3);
}
intmain()
{
intN;
printf("Inputn:");
scanf("%d",&N);
printf("%lld ",cow(N));
return0;
}
‘贰’ C语言,为什么我不用finalx和finaly来赋值,直接输出a,b结果不一样呢
当找到final值后循环没有退出
xy还在改变
所以最终的xy不是final的值
‘叁’ C语言问题,如图,怎样才能在printf("消费总金额:%g",finalPay);后面加上元
printf("消费总金额:%g元",finalPay);
‘肆’ 求助,用C语言写出程序过程。
#include<stdio.h>
int
main()
{
float
final_score,re_score,mid_score;//期末成绩、平时成绩、期中成绩
float
score;//最终成绩
printf("请分别输入平时成绩、期中成绩、期末成绩\n");
scanf("%f%f%f",&re_score,&mid_score,&final_score);
score
=
0.2*re_score
+
0.3*mid_score
+
0.5*final_score;
if(score
>=
85)
{
printf("优秀\n");
}
else
if(score
>=75)
{
printf("良\n");
}
else
if(score
>=65)
{
printf("及格\n");
}
else
{
printf("不及格\n");
}
return
0;
}
‘伍’ C语言问题 高手进!
1.首先return字符应该是单引号,不应该是双引号,否则表示的是字符串
2.grade=scoresToGrade(roundScores);
数组名是不可以用作左值的,scoresToGrade返回的是char型,所以你可以直接定义一个char型变量就可以了,可以把char grade[2];
改为char grade;
3.看你的意思是想输出字符,所以在前面改动的基础上把printf("%s",grade);改为printf("%c",grade);就行了
‘陆’ 关于C语言学习
把Kernighan和Ritchie的 The C Programming Language这本书(238页,ANSI C)看一遍就差不多了,这时候你写不了什么实用的程序(天才,一点就通的人例外)。接下来你需要根据兴趣爱好或职业规划等来给自己选一个发展方向。如果急着靠它找工作,那么就看看Windows,它入门快,很快就可以参与到求职竞争中去(这辈子也很可能局限于此)。如果并不是急着用C来打扮自己,那么建议看看Linux Programming Unleashed,然后根据更细的发展方向去看LDD、LKD或Linux应用编程等内容,这些东西入门稍有难度(只是稍有难度而已,别被那些没耐性的Windows菜鸟给吓着)。Linux搭配C语言应用范围很广,这类人在国内算是高端人才,不愁嫁的。 C语言是一个实用技术,本身的内容并不多,主要的学习精力将会用在各种各样的库函数上面,而各种库函数往往有各自的适用范围,不可能也没必要甚至不应该乱学一气(库函数确实很多,乱学很容易造成混乱)。总的来说,我的建议就是先看一遍The C Programming Language,然后给自己选一个发展方向,看那个方向适用的一些函数库,如果还有精力,再看看Autotools工具包。
‘柒’ C语言中final用法
首先,final关键字在C语言中并不存在。
其次,C++11中增加了final关键字,应该是从Java语言中借鉴而来,用途也一样。示例代码如下:
#include<iostream>
usingnamespacestd;
/*;compilationerror*/
classA/*final*/{
public:
/*;compilationerror*/
virtualvoidfunc(int)/*final*/{cout<<"A::func()"<<endl;}
};
classB:publicA{
public:
/*method*/
virtualvoidfunc(int)override{cout<<"B::func()"<<endl;}
/*virtualvoidfunc(char)override{}compilationerror;newmethod(seesignature),doesnotoverrideexisting*/
};
intmain(){
At;
t.func(2);
Bu;
u.func(3);
}
‘捌’ final是什么意思呢..
1、最终的;最后的
The referee blew the final whistle.
裁判吹响了终场的哨声。
2、(指结果)最终的,最后的
No one could have predicted the final outcome.
谁也没有预想到最终结果会是这样。
3、决定性的;不可改变的;最终的
Who has the final say around here?
这里谁有最后决定权?
4、决赛
She reached the final of the 100m hurdles.
她取得了100米跨栏的决赛权。
(8)c语言final扩展阅读
final和last的辨析
1、 两者都可指顺序上的“最后”,有时可换用。如:
The final/last word in this dictionary is "Zoom".
这本词典的最后一个单词是"Zoom"。
2、 last 主要指一个系列 (如顺序、次序、时间等)的最后,含有再往后就没有了的意思。如:
He was the last to arrive.
他是最后一个来的。
3、final 不仅指顺序上的最后,而且含有以此作为结束或到达终点之意。如:
He failed in the final examinations.
他期中考试没有及格。
4、final可由“最后的”引申出“确定的”或“不能改变的”。如:
The decision is final.
这个决定不能改变。
‘玖’ C语言中/与%的区别
%作为运算符是用来取余的,/是除法运算。
例如:除法运算式
65 ÷8 = 8余1
那么
65 / 8 = 8
65 %8 = 1
(9)c语言final扩展阅读
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
‘拾’ c语言大小写字母转换
ABab
abAB请按任意键继续. . .
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char pre[]={0},final[]={0};
int len, i ;
gets(pre);
len = strlen( pre );
for(i = 0; i < len; i++)
{
if(pre[i] - 'A' <= 25 && pre[i] - 'A' >= 0 && pre[i] != '\0')
final[i] = pre[i] + 32;
else if (pre[i] - 'A' > 25 && pre[i] != '\0')
final[i] = pre[i] - 32;
}
final[i]='\0'; //不加结束符的话 后面未可预料 由于内存连续 显示的是从pre溢出的
printf("%s", final);
system("pause");
return 0;
}