⑴ c语言——计算正整数2345的各位数字的平方的和
首先判断数字的位数,根据位数建立数组
然后分解开,分别保存在数组里
再分别平方相加就行
#include<stdio.h>
intilength(intx);//判断数字位数的函数
voidmyfun(int*p,intx);//分解数字保存在数组中的函数
intmain()
{
intx;//需要计算的数字
int*p;//需要建立的数组
inti;//数字的位数
intsum;//保存平方和
陪乱intj;
芦锋档x=23456;
sum=0;
i=ilength(x);
p=(int*)malloc(i*sizeof(int));
memset(p,0,i*sizeof(int));
myfun(p,x);
for(j=0;j<i;j++)
{
sum=sum+p[j]*p[j];
}
基穗free(p);
printf("%d ",sum);
return0;
}
intilength(intx)
{
inti;
i=0;
while(x!=0)
{
i=i+1;
x=x/10;
}
returni;
}
voidmyfun(int*p,intx)
{
while(x!=0)
{
*p=x%10;
x=x/10;
p++;
}
return;
}
⑵ c语言编程,有一组数据,98,12,87,4,65,23,54,33,48,78,将其由小到大排序
#include<stdio.h>
//序列“98,12,87,4,65,23,54,33,48,78”
void QuickSort(int a[],int left,int right)
{
int i,j,temp,tp;
temp=a[left];//暂存基准数
i=left;//最左位置
j=right;//最右位置
if(left>right)//递归结束条件
return;
while(i!=j)//当i和j不重合时
{
while(a[j]>=temp && i<j) //从右往左寻找小于基准数的值
j--;
while(a[i]<=temp && i<j) //从左往右寻找大于基准数的值
i++;
//找到了且i<j则交换数值
if(i<j)
{
tp=a[i];
a[i]=a[j];
a[j]=tp;
}
}
//将基准数和i、j的相遇数值进行交换
a[left]=a[i];
a[i]=temp;
//应用递归对此时基准数的左边进行快速排序
QuickSort(a,left,i-1);
//应用递归对此时基准数的右边进行快速排序
QuickSort(a,i+1,right);
}
void main()
{
int a[10],i;
printf("please input 10 numbers: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("The array is: "); //输入序列“98,12,87,4,65,23,54,33,48,78”
for(i=0;i<10;i++)
printf("%-4d",a[i]);
QuickSort(a,0,9); //调用快速排序函数
printf(" After sort the array is: ");
for(i=0;i<10;i++)
printf("%-4d",a[i]);
printf(" ");
}
(2)c语言4到54怎么计算扩展阅读:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。
⑶ 怎样 在c语言中随机的输出1-53这几个数
需要对获取过的随机数保存记录,在每获取一个新的随机数时,先判断是否获取过。
如果获取过,那么抛弃;否则输出,并保存记录。
当全部数据均输出后结束程序。
代码如下:
intmain()
{
intf[54]={0};
intn;
inti;
srand(time(NULL));
for(i=0;i<53;i++)
{
n=rand()%53+1;
if(f[n])i--;
else
{
printf("%d,",n);
f[n]=1;
}
}
}
⑷ C语言 星期算法叫什么名字
如果要从年月日算星期几:(蔡乐公式)
公元元年1月1日是星期几?农历几月初几?2006年09月27日 星期三 21:36是星期一 农历十二月初一(农历和公历19年重复一次 所以查询19年的倍数 也就是1995年的1月1日就可以了解公元1年的农历日期:PS不一定准确)
最常见的公式:
W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D
Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
最好用的是蔡勒公式:
W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1
C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和
14月来算,这时C和y均按上一年取值。
两个公式中的[...]均指只取计算结果的整数部分。算出来的W除以7,余数是几就
是星期几。如果余数是0,则为星期日。
---------------------------------------------------------------------------
蔡勒公式 蔡勒(Zeller)公式:是一个计算星期的公式。
随便给一个日期,就能用这个公式推算出是星期几。
蔡勒公式如下:
W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1
或者是:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
公式中的符号含义如下:
w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
c:世纪-1(前两位数)
y:年(后两位数)
m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)
d:日
[ ]代表取整,即只要整数部分。
下面以中华人民共和国成立100周年纪念日那天(2049年10月1日)来计算是星期几,过程如下:
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
=49+[49/4]+[20/4]-2×20+[26×(10+1)/10]+1-1
=49+[12.25]+5-40+[28.6]
=49+12+5-40+28
=54 (除以7余5)
即2049年10月1日(100周年国庆)是星期五。
再比如计算2006年4月4日,过程如下:
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
=6+[6/4]+[20/4]-2*20+[26*(4+1)/10]+4-1
=-12 (除以7余2, ((((((注意对负数的取模运算!)))))
不过,以上的公式都只适合于1582年(我国明朝万历十年)10月15日之后的情形。罗马教皇格里高利十三世在1582年组织了一批天文学家,根据哥白尼日尔爾心说计算出来的数据,对儒略历作了修改。将1582年10月5日到14日之间的10天宣布撤销,继10月4日之后为10月15日。
后来人们将这一新的历法称为“格里高利历”,也就是今天世界上所通用的历法,简称格里历或公历。
若要计算的日期是在1582年10月4日或之前,公式则为
w=y+[y/4]+[c/4]-2c+[13(m+1)/5]+d+3
1582.10.4之后的计算代码如下:
#include <iostream>
using namespace std;
int year,month,day;
cin >> year >> month >> day;
if ( month < 3 ) {
year -= 1;
month += 12;
}
char b[7][10] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int c = int(year / 100), y = year - 100 * c;
int w = int(c / 4) - 2*c +y +int(y/4) +(26 * (month + 1)/10 ) + day - 1;
注意w = ( w % 7 + 7 ) % 7;
cout << b[w] << endl;
⑸ C语言中结构体数组长度怎么计算
结构体数组的长度计算方法和普通数组相同。
1、c语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数)。但是通过传递数组名参数到子函数中,以获得数组长度是不可行的,因为在子函数当中,数组名会退化为一个指针。
2、例如:
int
data[4],length;
length=sizeof(data)/sizeof(data[0]);
//数组占内存总空间除以单个元素占内存空间大小,即等于元素个数
printf("length
of
data[4]=%d",
length
);
//输出length
of
data[4]=4
⑹ C语言'4'加'5'等于多少
C语言中,'4'和'5'慧迹是字符型常量。当直接对字符型常量进行加法运算时,C语言会亩碧岩将字符转换为该字符所对应的ASCII码值进行计算。
'4'的ASCII码值为52,'5'的ASCII码值为53。所以'4'+'5'的计算过程实际上是52+53,结果为105。
因此,在C语言迅御中,'4'加'5'的结果是105。
⑺ c语言求矩阵的平均值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
float sumall(float *matrix, int size_m, int size_n)
{
int ij=0, max_ij=size_m*size_n;
float result=0;
do {
result+=matrix[ij++];
} while(ij<max_ij);
return result;
}
int size_m=5, size_n=6;
float matrix[5][6]={{1.,2.,3.,4.,5.,6.},\
{1.,2.,3.,4.,5.,6.},\
{1.,2.,3.,4.,5.,6.},\
{1.,2.,3.,4.,5.,6.},\
{1.,2.,3.,4.,5.,6.}};
int main()
{
printf("sum=%g", sumall((float*)&matrix[0][0], size_m, size_n));
⑻ c语言菜鸟求帮忙,跪求跪求,54和55两道题求大神解答 要解释 谢谢
54. 选D。
55. 题目有错:应该是“并有启携以下输入数据”而不是“并有以下输出数据”。除此之外D正确。具体是这样的:
第1个&s1接收了2后面的回车,第2个&s1接收了字符U;
第1个&s2接收了U后面的空格,第2个&s2接收了字符V;
第1个&s3接链改收了V后面的空格,第2个&s3接收了字悄唤伏符W。