1.计算天数:
按照格式“yyy/mm/dd”(即“年/月/日”)输入日期,计算其是该年的第几天。要求定义和调用函数day_of_year(year,month,day)计算并返回年year、月month、日day对应的是该年的第几天。
#include <stdio.h>
int day_of_year(int year,int month,int day);//定义(声明)(年/月/日)函数
int main(void)
{
int year,month,day,n;
scanf("%d/%d/%d",&year,&month,&day);
n=day_of_year(year,month,day);//调用函数
printf("%d",n+day);
return 0;
}
int day_of_year(int year,int month,int day)
{
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//a[0]若赋值为一月的天数,即31,i的范围应更改为"month-2"
if((year%4==0&&year%100!=0)||year%400==0){
a[2]=29;//闰年二月29天
}
int i,n=0;
for(i=0;i<=month-1;i++){
n+=a[i];//i月前的天数为n
}
return n;
}
程序运行结果1:
程序运行结果2:
2.判断上三角矩阵:
输入一个正整数n(1<=n<=10)和n阶方阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”。上三角矩阵指主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
#include<stdio.h>
int main(void)
{
int n,i,j,num=0;
printf("Enter n:");
scanf("%d",&n);
int a[n][n];
printf("Enter an array:");//array:数组
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
for(i=(n-1);i>0;i--){
for(j=0;j<i;j++){
num+=a[i][j];
}
}
if(num==0){
printf("YES");
}
else{
printf("NO");
}
return 0;
}
3. 查找指定字符:
输入一个字符,再输入一个以回车结束的字符串(少于80个字符),在字符串中查找该字符。如果找到,则输出该字符在字符串中所对应的最大下标,下标从0开始;否则输出“NOT FOUND”。
#include<stdio.h>
#define MAXLINE 80
int main(void)
{
int i,n,judge=0;
char character;
char string[MAXLINE];
printf("Enter a character:");
scanf("%c",&character);
printf("Enter a string:");
string[0]=getchar();
n=1;
while((string[n]=getchar())!='\n'){
n++;
}
string[n]='\0';
for(i=n;i>=0;i--){
if(string[i]==character){
printf("%d",i-1);
judge=1;
break;
}
}
if(judge==0){
printf("Not Found");
}
return 0;
}