各种智障问题_记个笔记( ̄▽ ̄)~*

闰年计算方法

1.当公历年份不是一百的倍数时,需要被4整除;
2.当公里年份是100的倍数时,必须是400的倍数才行。

代码如下:

#include<stdio.h>
int main()
{
    int year;
    scanf("%d",&year);
    if ((year%400==0)||(year%4==0&&year%100!=0))
        printf("闰年\n");
    else printf("平年\n");
    return 0;
}

判断素数

先把输入的数当成素数,一旦找到有一个数能被其整除,即判断这个数不是素数。特别注意,1不是素数,需特别讨论。

代码如下:

#include<stdio.h>
int main()
{
    int n,i,flag;
    scanf("%d",&n);
    flag=1;
    for (i=2;i<n;i++)
    {
        if (n%i==0) flag=0;break;
    }
    if (n==1) printf("This is not a prime.");
    else if(flag==1) printf("This is a prime.");
    else printf("This is not a prime.");
    return 0;
}

选择排序(由大到小)

代码如下:

for (i=0;i<n-1;i++)
    {
        for (j=i+1;j<n;j++)
        {
            if (x[j]>x[i])
            {
                temp=x[j];
                x[j]=x[i];
                x[i]=temp;
            }
        }
    }

冒泡排序(由大到小)

代码如下:

for (i=0;i<n-1;i++)
    {
        for (j=0;j<n-i-1;j++)
        {
            if (x[j]<x[j+1])
            {
                temp=x[j];
                x[j]=x[j+1];
                x[j+1]=temp;
            }
        }
    }

杨辉三角

Problem Description

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
上面的图形熟悉吗?它就是我们中学时候学过的杨辉三角。

Input

输入数据包含多组测试数据。
每组测试数据的输入只有一个正整数n(1≤n≤30),表示将要输出的杨辉三角的层数。
输入以0结束。

Output

对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。

Sample Input

2
3
0

Sample Output

1
1 1

1
1 1
1 2 1

代码如下:

#include<stdio.h>
int main()
{
    int n,i,j,k,x[30][30];
    while (scanf("%d",&n)!=EOF&&n!=0)
    {
        for (i=0;i<n;i++)
        {
            for (j=0;j<=i;j++)
            {
                if (j==0||j==i) x[i][j]=1;
                else x[i][j]=x[i-1][j-1]+x[i-1][j];
            }
        }
        for (i=0;i<n;i++)
        {
            for (j=0;j<=i;j++)
            {
                if (j==i) printf("%d\n",x[i][j]);
                else printf("%d ",x[i][j]);
            }
        }
        printf("\n");
    }
    return 0;
}

extern int strcmp(const char s1,const char s2);

规则
当s1<s2时,返回为负数;
当s1==s2时,返回值= 0;
当s1>s2时,返回正数。
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
特别注意:strcmp(const char s1,const char s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
ANSI标准规定,返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。

Tags:none
上一篇
下一篇

该页面评论已关闭