C语言学习必学代码

1、c语言的编译过程(第一个c程序)

#include <stdio.h>                 //这是预编译命令
 
int main()                         //定义主函数
    
    {                              //函数开始的标志
      printf("Hello World");       //输出所指定的一行信息
      return 0;                    //函数执行完毕时返回函数值0
}                                  //函数结束的标志

2、输入某年某月某日,判断这一天是这一年的第几天?

#include "stdio.h""
 
int main() {
    int day, month, year, sum, leap;
    printf("\nplease input year,month,day\n");
    scanf("%d,%d,%d", &year, &month, &day);
    switch (month)/*先计算某月以前月份的总天数*/
    {
        case 1:
            sum = 0;
            break;
        case 2:
            sum = 31;
            break;
        case 3:
            sum = 59;
            break;
        case 4:
            sum = 90;
            break;
        case 5:
            sum = 120;
            break;
        case 6:
            sum = 151;
            break;
        case 7:
            sum = 181;
            break;
        case 8:
            sum = 212;
            break;
        case 9:
            sum = 243;
            break;
        case 10:
            sum = 273;
            break;
        case 11:
            sum = 304;
            break;
        case 12:
            sum = 334;
            break;
        default:
            printf("data error");
            break;
    }
    sum = sum + day; /*再加上某天的天数*/
    if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))/*判断是不是闰年*/
        leap = 1;
    else
        leap = 0;
    if (leap == 1 && month > 2)/*如果是闰年且月份大于2,总天数应该加一天*/
        sum++;
    printf("It is the %dth day.", sum);
}

3、输入三个整数x,y,z,请把这三个数由小到大输出。

#include "stdio.h""
 
int main() {
    int x, y, z, t;
    printf("Please input the value of x,y and z: ");
    scanf("%d%d%d", &x, &y, &z);
    if (x > y) {
        t = x;
        x = y;
        y = t;
    } /*交换x,y的值*/
    if (x > z) {
        t = z;
        z = x;
        x = t;
    }/*交换x,z的值*/
    if (y > z) {
        t = y;
        y = z;
        z = t;
    }/*交换z,y的值*/
    printf("small to big: %d %d %d\n", x, y, z);
}

4、输出图形*号

#include<stdio.h>
#include<math.h>

int main()
{
	
	int i,j,k;		 
	for(i=1;i<=8;i++) //行     1           2            3
	{
	for(j=8;j>=1;j--)//空      11111111   11111111     11111111
		printf(" ");
	for(k=1;k<=2*i-1;k++)//输出*号  1      3			5
		printf("*");
		printf("\n");


	}
	
		return 0;
}
   
		

5、把一个三位的数字,分别输出它的个位数,十位数、百位数。

#include<stdio.h>
#include<math.h>
 main()


{	int a,b,c,m;
	m=321;
	a=m%10;	//个位
	b=(m/10)%10;		//十位
	c=m/100;			//百位
		printf("%d%d%d\n",a,b,c);//输出个、十、百

	return 0;
}

6、求某某范围内的闰年

#include<stdio.h>
	main()
{
	int i;
	
	
	for ( i = 0; i <= 5000; i++)
	{
	if ((i%4==0 && i%100!=0) || i%40==0)
	
		printf("%d\n",i); 
}
return 0;
}

 *  如上代码是求 0—5000年范围内的闰年。

  1. 非整百年:能被4整除的为闰年。(如2004年就是闰年,2100年不是闰年)
  2. 整百年:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)

7、输入四个数,求最大、最小值

       (1) 最小值代码

#include<stdio.h>
#include<math.h>

int main()
{
	
	int i,x,min;
	for(i=1;i<=4;i++)
	{


	scanf("%d",&x);
	if(i==1) 
	{	 min=x;  }



	if(x<min)
		min=x;
	}

	printf("%d\n",min);

}

     

(2) 最大值代码

#include<stdio.h>
#include<math.h>

int main()
{
	
	int i,x,max;
	for(i=1;i<=4;i++)
	{


	scanf("%d",&x);
	if(i==1) 		//注意:这里是 等于号
	{	max=x; }


	if(x>max)
		max=x;


	}
	printf("%d\n",max);

}
   

8、在一维数组中:输入一个数,找到它的位置

#include<stdio.h>
#include<math.h>

int main()
{

	int ft,i,x,n,a[15]={1,2,4,5,7,0,8,11,13,15,67,99,100,22,33};
	scanf("%d",&x);

	for(i=0;i<=14;i++)

	{		if(a[i]==x)
			{ft=1;
			n=i;}
		
			

	}		
	if(ft==1)
		printf("%d找到了,在第%d位置",x,n);
	else
		printf("未找到");
	
}
   

9、判断一个数是否为素数(质数)

#include<stdio.h>

#include"math.h"
#include<stdlib.h>
int main()
{
		
		int a,i,k,z;
		scanf("%d",&a);
		k=a/2;
		for(i=2;i<=k;i++)
			if(a%i==0) break; 
			if(i>k)
			printf("%d是质数",a);  
			else
				printf("%d不是质数",a);
 
} 

10、小写字母变成大写字母

#include<stdio.h>
#include<math.h>

int main()
{
	
	char c;
	scanf("  %c",&c);
	
		if(c>='a'&&c<='z')
		c=c-32;
	printf(" %c\n",c);

}

11、输入十个数,求最大最小,偶数、奇数个数

#include<stdio.h>
#include<math.h>

int main()
{
	
	int i,x,odd=0,even=0,max,min;
	for(i=1;i<=10;i++)
	{


	scanf("%d",&x);
	if(i==1) 
	{	max=x; min=x;  }

	if(x%2==0)
		even+=1;

	if(x%2!=0)
		odd+=1;

	if(x>max)
		max=x;

	if(x<min)
		min=x;
	}
	printf("%d\n",max);
	printf("%d\n",min);
	printf("%d\n",odd);
	printf("%d\n",even);
}
   

12、输出9*9乘法表口诀。

#include "stdio.h"
 
int main() {
    int i, j, result;
    printf("\n");
    for (i = 1; i < 10; i++) {
        for (j = 1; j < 10; j++) {
            result = i * j;
            printf("%d*%d=%-3d", i, j, result);/*-3d表示左对齐,占3位*/
        }
        printf("\n");/*每一行后换行*/
    }
}

13、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

#include "stdio.h"
 
int main() {
 
    int i, j, k, n;
    printf("'water flower'number is:");
    for (
            n = 100;
            n < 1000; n++) {
        i = n / 100;/*分解出百位*/
        j = n / 10 % 10;/*分解出十位*/
        k = n % 10;/*分解出个位*/
        if (i * 100 + j * 10 + k ==
            i * i
            * i +
            j * j
            * j +
            k * k
            * k) {
            printf("%-5d", n);
        }
    }
    printf("\n");
}

分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 

14、输入两个正整数m和n,求其最大公约数和最小公倍数。 

#include<stdio.h>
 
int main() {
    int m, n, i, l, z;
    printf("Please input two numbers: ");
    scanf("%d %d", &m, &n);
    if (m > n) {
        i = n;
        z = m;
    } else {
        i = m;
        z = n;
    }
    for (; i > 0; i--) {
        if (m % i == 0 && n % i == 0) {
            l = i;
            break;
        }
    }
    printf("%d\n", l);
    for (;; z++) {
        if (z % m == 0 && z % n == 0) {
            l = z;
            break;
        }
    }
    printf("%d\n", l);
    return 0;
}

15、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

#include <stdio.h>
 
int main() {
    int day, x1, x2;
    day = 9;
    x2 = 1;
    while (day > 0) {
        x1 = (x2 + 1) * 2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
        x2 = x1;
        day--;
    }
    printf("the total is %d\n", x1);
} 

16、利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

#include "stdio.h"
 
int main() {
    int score;
    char grade;
    printf("please input a score\n");
    scanf("%d", &score);
    grade = score >= 90 ? 'A' : (score >= 60 ? 'B' : 'C');
    printf("%d belongs to %c", score, grade);
}

上一篇:【2021.06.24】SENG: An Enhanced Policy Language for SELinux


下一篇:CSS – word-break, word-wrap, white-space