|
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;
}
|
-
-
|