|
10鱼币
事情是这样的,在使用c语言练习的时候,最后编译时候报错了
第一张是我测试的时候,发现sqrt是能用的,我用的版本是dev—c++5.11.
但是一样的用法到第二张,结果就报错了。
这是源码,其目的是求2001到2021年之间有多少完全日,就是求完全日(完全日就是年月日加起来是完全平方数)
//i是年,j是月,z是日
#include "stdio.h"
int year(int n){
if((n%4==0&&n%100!=0) || (n%400==0)){
return 29;
}
else{
return 28;
}
}
int quzhen(int n){
int sum=0;
while(n){
int k=n%10;
sum+=k;
n=n/10;
}
return sum;
}
int check(int n){
int k;
k=sqrt(n);
if(k*k==n){
return 1;
}
return 0;
}
void main(){
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int ans=0,year,j,z;
for(i=2001;i<=2021;i++){
for(j=1;j<=12;j++){
day[2]=year(i);
for(z=1;z<=day[j];z++){
int a=quzhen(i)+quzhen(j)+quzhen(z);
pritnf("%d %d %d\n",i,j,z);
if(1){
ans++;
}
}
}
}
printf("%d",ans);
return 0;
}
- #include "stdio.h"
- int year(int n){
- if((n%4==0&&n%100!=0) || (n%400==0)){
- return 29;
- }
- else{
- return 28;
- }
- }
- int quzhen(int n){
- int sum=0;
- while(n){
- int k=n%10;
- sum+=k;
- n=n/10;
- }
- return sum;
- }
- int check(int n){
- int k;
- k=sqrt(n);
- if(k*k==n){
- return 1;
- }
- return 0;
- }
- //void main(){
- int main(){
- int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
- //int ans=0,year,j,z;
- int ans=0,year_,j,z;
- int i;
- for(i=2001;i<=2021;i++){
- for(j=1;j<=12;j++){
- day[2]=year(i);
- for(z=1;z<=day[j];z++){
- int a=quzhen(i)+quzhen(j)+quzhen(z);
- pritnf("%d %d %d\n",i,j,z);
- if(1){
- ans++;
- }
- }
- }
- }
- printf("%d",ans);
- return 0;
- }
复制代码
|
-
-
|