一些常见的必须会的谭浩强基本代码大全也是常考的应试是没问题的

//1. 1£¡+2£¡+3£¡+...20!
/*
#include 
int main()
{
    int i;
    long sum=0,k=1;
    for(i=1;i<=20;i++)
    {
        k*=i;
        sum+=k;
    }
    printf("%d",sum);
}
*/

//方法2
/*
#include 
int main()
{
    int i,j;
    long sum=0,k;
    for(i=1;i<=20;i++)
    {
        k=1;
        for(j=1;j<=i;j++)
        {
            k*=j;
        }sum+=k;
    }printf("%d",sum);
}
*/

//2. 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
/*
#include
void reverse(int n)
{
    int next;
    if(n<=1)
    {
        next=getchar();
        putchar(next);
    }
    else
    {
        next=getchar();
        reverse(n-1);
        putchar(next);
    }
}

int main()
{
    int n=5;  //这里n是字母的个数,也可以通过键盘输入
    reverse(n);
    return 0;
}
*/

//3.  输入一个小于5位的正整数,分别输出它的位数及其逆序打印出各位数字
/*
#include


int main()
{
    int a,b,c,d,e,x;
    printf("请输入一个小于5位的正整数;");
    scanf("%d",&x);
    a=x/10000;
    b=x%10000/1000;
    c=x%1000/100;
    d=x%100/10;
    e=x%10;
    if(a!=0){
        printf("为5位数字,逆序为:%d%d%d%d%d\n",e,d,c,b,a);
    }
    else if(b!=0)
    {
        printf("为4位数字,逆序为:%d%d%d%d",e,d,c,b);

    }
    else if(c!=0){
        printf("位3位数字,逆序为:%d%d%d",e,d,c);
    }
    else if(d!=0){
        printf("为2位数字,逆序为:%d%d",e,d);
    }
    else if(e!=0){
        printf("位1位数字,逆序为:%d",e);
    }
    return 0;
}
*/

//编写一个程序输出 HelloWord

//4. 输入3个数abc 输出他们其中最大的数
/*
#include
int main()
{
   int a,b,c,max;
   printf("请输出a,b,c\n");
   scanf("%d%d%d",&a,&b,&c);
   if(a>b)
   {
       if(c>a)
        max=c;
       else
        max=a;
   }
   else{
    if(c>b)
        max=c;
    else
        max=b;
   }
   printf("max=%d",max);
   return 0;
}
*/


//5.  请输入星期几的第一个字母来判断是星期几,
//如果第一个字母一样,则继续判断第二个字母
/*
#include 

int main()
{
    char i, j;
    printf("请输入第一个字母:");
    scanf("%c", &i);
    getchar();//处理‘\n’
    switch (i)
    {
    case 'm':
        printf("monday\n");
        break;
    case 'w':
        printf("wednesday\n");
        break;
    case 'f':
        printf("friday\n");
        break;
    case 't':
        printf("请输入下一个字母\n");
        scanf("%c", &j);
        if ('u' == j) {
            printf("tuesday\n");
            break;
        }
        if ('h' == j) {
            printf("thursday\n");
            break;
        }
    case 's':
        printf("请输入下一个字母\n");
        scanf("%c", &j);
        if ('a' == j) {
            printf("saturday\n");
            break;
        }
        if ('u' == j) {
            printf("sunday\n");
            break;
        }
    default:
        printf("error\n");
        break;
    }
    return 0;
}
*/

// 6. 函数调用的用法实例
/*
#include
int main()
{
    int n;
    printf("打印多少次:");
    scanf("%d",&n);
    hello(n);
    return 0;
}
void hello(n)
{
    if(n)
    {
    printf("hello C!\n");
    hello(n-1);
    }

}

*/

//7. 求2/1,3/2, 5/3,8/5,13/8,21/13...这个数列的前20项之和

/*#include
int main()
{
    int i,t;
    float sum=0;
    float a=2,b=1;
    for(i=1;i<=20;i++)
    {
        sum=sum+a/b;
        t=a;
        a=a+b;
        b=t;
    }
    printf("%f\n",sum);
    return 0;
}
*/
//8. 打印出所有的水仙花数(一个三位数,其各位数字立方和等于该数本身)
/*
int main()
{
    int i,x,y,z;
    for(i=100;i<1000;i++)
    {
        x=i%10;
        y=i/10%10;
        z=i/100%10;

        if(i==(x*x*x+y*y*y+z*z*z))
            printf("%d\n",i);
    }
    return 0;
}
*/

//9. 输出101-200 之间的素数
/*
#include
int main()
{
    int i,j;
    int count=0;
    for(i=101;i<=200;i++)
    {
        for(j=2;j=i)
        {
            count++;
            printf("%d ",i);
            if(count%5==0)
                printf("\n");
        }
    }
    return 0;
}
*/

//10 . 输出9*9乘法表口诀
/*
#include
int main()
{
    int i,j,result;
    for(i=1;i<10;i++)
    {
        for(j=1;j<=i;j++)
        {
            result=i*j;
            printf("%d*%d=%-3d",i,j,result); //-3d表示左对齐,占3位
        }printf("\n");
    }
    return 0;

}
*/


//11 .输入三个整数xyz,请把这三个数由小到大输出。
/*
#include
int main()
{
    int x,y,z,t;
    printf("请输入三个数字:\n");
    scanf("%d %d %d",&x,&y,&z);
    //return 0;
    if(x>y){
        t=x;
        x=y;
        y=t;
    }
    if(x>z){
        t=x;
        x=z;
        z=t;
    }
    if(y>z)
    {
        t=y;
        y=z;
        z=t;
    }
    printf("从小到大的顺序:%d %d %d\n",x,y,z);
    return 0;
}
*/
// 12.判断2000-2500年中的每一年是否为闰年,并将结果输出
/*
#include
int main()
{
    int i;
    for(i=2000;i<=2500;i++){
        if(i%400==0||i%4==0&&i%100!=0){
            printf("闰年的年份:%d\n",i);
            continue;
        }
        else
        {
            continue;
            //printf("不是闰年的年份:%d\n",i);
        }
    }
}
*/

//13 . 输入一个数是否能被3和5整除
/*
#include
int main()
{
    int a;
    printf("请输入一个数:");
    scanf("%d",&a);
    if(a%3==0&&a%5==0){
        printf("这是能被3和5整除的数:%d",a);
    }
    else{
        printf("不能:%d",a);
    }
}
*/

//14 . 求1+2+3+...+100的和
/*
#include
int main()
{
    int i,a=0;
    for(i=1;i<=100;i++){
        a+=i;
    }
    printf("%d",a);
}
*/
//15. 求两个数m和n的最大公约数
/*
#include
//#include
int main(){
#include
int a,b,r,t;
printf("请输入两个数");
scanf("%d,%d",&a,&b);
if(b==0){
    t=a;
    a=b;
    b=t;
}
while(a%b!=0){
    r=a%b;
    a=b;
    b=r;
}
printf("最大公约数为:%d",r);
return 0;
}
*/

//16 依次输入10个数,求出之中的最大数
/*
#include
int main()
{
    int b[10]={0};
    int a;
    int i,max;
    for(i=0;i<10;i++)
    {
        printf("please input your ten number%d:",i);
        scanf("%d",&b[i]);
    }
    max=b[0];
    for(i=0;i<10;i++)
    {
        if(max
int main()
{
    int i;
    double sum = 0.0;

    for (i = 1; i <= 100; i++)
    {
        if (i % 2 == 0)
        {
            sum -= 1.0/i;
        }
        else
        {
            sum += 1.0/i;
        }
    }

    printf("The result is: %lf\n", sum);

    return 0;
}
*/



//18 给出一个大于或等于3的正整数,判断它是不是一个素数
// 所谓素数prime是指除了1和该本身之外,不能被其他任何整数整除的数
//输出1-100之间的素数
/*
#include
int main()
{
    int i,j;
    for(i=2;i<100;i++)
    {
       int isprime=1;
        for(j=2;j
int main()
{
    int i,n=5,fact=1;
    for(i=1;i<=n;i++)
    {
        fact*=i;
    }
    printf("%d!=%d\n",n,fact);
}
*/
//20 有50个同学,要求将成绩在80分以上的学生的学号和成绩输出 c语言
/*
#include 

int main()
{
    int i, score[50], id[50];

    for (i = 0; i < 50; i++)
    {
        printf("请输入第%d个学生的学号和成绩:", i + 1);
        scanf("%d%d", &id[i], &score[i]);
    }

    printf("成绩在80分以上的学生有:\n");

    for (i = 0; i < 50; i++)
    {
        if (score[i] >= 80)
        {
            printf("学号:%d,成绩:%d\n", id[i], score[i]);
        }
    }

    return 0;
}
*/

/*
#include
int main()
{
    int i,j;
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=i;j++)
        {
            printf("&");
        }printf("\n");
    }
    return 0;
}
*/
// 21 输入一个字符串,统计出其中字母、数字和其他字符的个数
/*
#include
int main()
{
    char s[50];
    int i,alpha=0,digit=0,other=0;
    gets(s);
    for(i=0;s[i]!='\0';i++){
        if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){
            alpha++;
        }
        else if(s[i]>='0'&&s[i]<='9'){
            digit++;
        }
        else {
            other++;
        }
    }
    printf("alpha:%d,digit:%d,other:%d",alpha,digit,other);
    return 0;
}

*/


//22 编写一个函数,输入一个整数数组和数组长度,输出该数组中的最大值、最小值和平均值。
/*
#include
void operator(int a[], int n, int *max, int *min, float *avg) {
    int sum=0, i;
    *max=*min=a[0]; // 假设a列表中第一个数为最大数,最小数。
    for (i=0; i*max) {
            *max=a[i];
        }
        if (a[i]<*min) {
            *min=a[i];
        }
    }
    *avg=(float)sum/n; // 注意强制类型转换为float类型
}
int main() {
    int i, n, a[50], max, min;
    float avg;
    scanf("%d", &n);
    for (i=0; i
#include
int main() {
    int a, b, oper;
    printf("请输入两个整数:");
    scanf("%d%d", &a, &b);
    printf("请输入运算符号:1. 加 2. 减 3. 乘 4. 除 5. 求幂 ");
    scanf("%d", &oper);
    switch (oper) {
        case 1: printf("结果为:%d", a+b); break;
        case 2: printf("结果为:%d", a-b); break;
        case 3: printf("结果为:%d", a*b); break;
        case 4: printf("结果为:%d", a/b); break;
        case 5: printf("结果为:%f", pow(a, b)); break;
        default: printf("输入有误,请重新输入!");
    }
    return 0;
}
*/

//24 编写一个程序,输入任意一个整数n,输出n的阶乘,要求使用递归实现。
/*
#include
int factorial(int n) {
    if (n==0) { // base case
        return 1;
    } else {
        return n * factorial(n-1); // 递归调用
    }
}
int main() {
    int n, result;
    scanf("%d", &n);
    result=factorial(n);
    printf("%d的阶乘为%d", n, result);
    return 0;
}
*/
// TEST
/*
#include 
void main()
{
    //printf("123456789\n");
   // printf("h\ti\n");
   // printf("h\ti\bj_k\n");
   // printf("h\ti\rj_k\n");
   // printf("\a");
}
*/

/*
#include
int main()
{
    int a,b;
   // b=(a=3*5,a*4);
   b=((a=3*5,a*4),a+5);
    printf("%d",a);
    printf("\n");
    printf("%d",b);
    return 0;
}
*/
//test
/*
#include
int main()
{

    int a,b,c,d;
   // scanf("%d%d%d%d",&a,&b);
    //printf("%d,%d,%d,%d\n",a,b);
    //printf("\n");
    scanf("%c%c",&c,&d);
    printf("%c,%c\n",c,d);
}

*/
// 查询成绩
/*
#include
int main()
{
        int x,mark;
    printf("请输入您的成绩:");
    scanf("%d",&mark);
    if(mark>=90)
        printf("优秀");
    else if(mark>=80)
        printf("良好");
    else if(mark>=70)
        printf("中等");
    else if(mark>=60)
        printf("及格");
    else
        printf("不及格");
}
*/
//判断是否为闰年
/*
#include
int main()
{
    int year,leap;
    printf("please input");
    scanf("%d",&year);
    if((year%4==0&&year%100!=0)||(year%400==0))
        printf("闰年");
    else
    printf("非闰年");
}
*/
/*
#include
int main()
{
    int i,sum=0;
    while(i<=100)
    {
        sum=sum+i;
        i++;
    }
    printf("sum=%d",sum);
}
*/
/*
#include
int main()
{
    int i,sum=0;
    do
    {
        sum=sum+i;
        i++;
    }
    while(i<=100);
    printf("sum=%d",sum);

}
*/
// 菱形
/*
#include
int main()
{
    int i,j;
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=4-i;j++)
            printf(" ");
        for(j=1;j<=i*2-1;j++)
            printf("*");
            printf("\n");
    }
     for(i=3;i>=1;i--)
    {
        for(j=1;j<=4-i;j++)
            printf(" ");
        for(j=1;j<=i*2-1;j++)
            printf("*");
            printf("\n");
    }
}
*/

//小小矩阵
/*
#include
void main()
{
    int i,j,n=0;
    for(i=1;i<=4;i++)




        for(j=1;j<=5;j++,n++)
        {
            if(n%5==0&&n!=0)
            printf("\n");
            printf("%d\t",i*j);
       }

        printf("\n");

}
*/
//1!+2!+3!+4!+5!
/*
#include
void main()
{
    int i,j=1;
    int sum=0;
    for(i=1;i<=5;i++)
       {
        j*=i;
        sum+=j;
       }
       printf("%d",sum);
}
*/
//2
/*
#include
void main()
{
    int i,j;
    int sum=0,jec=1;
    for(i=1;i<=5;i++)
    {
        jec=1;

            for(j=1;j<=i;j++)

               {jec*=j;}
            sum+=jec;



    }
    printf("%d",sum);
}
*/

//迭代法
/*
#include
#include
void main()
{
  int sign=1;double n=1,pi=0,term=1;
  while(fabs(term)>=1e-6)
  {
      pi+=term;
      n+=2;
      sign=-sign;
      term=sign/n;
  }
  pi=pi*4;
  printf("pi=%10.8lf\n",pi);
}
*/

/*
//打印1000以内的水仙花数
#include
int main()
{
    int i,a,b,c;
    for(i=100;i<=999;i++)
    {
        a=i%10;
        b=i/10%10;
        c=i/100%10;
        if(i==(a*a*a+b*b*b+c*c*c))
            printf("%d ",i);
    }
}
*/
/*
// 求素数

#include 
#include 
int prime(int x);
int main()
{
    int i;
    for(i=100;i<=200;i++)
    {
        if(prime(i)) printf("%d ",i);
    }
    return 0;
}
int prime(int x)
{
    int i;
    if(x==1) return 0;
    for(i=2;i<=sqrt(x);i++)
        if(x%i==0) return 0;
        return 1;
}
*/
/*
// fib 兔子
#include

int fib(int x)
{
    if(x==0)
        return 0;
    else if (x==1||x==2)
        return 1;
    else
        return fib(x-1)+fib(x-2);
}


int main() {
    int month;
    printf("请输入月份:");z
    scanf("%d", &month);
    int result = fib(month);
    printf("第%d个月共有%d对兔子\n", month, result);
    return 0;
}
*/

/*
#include 

int main()
{
    int i,t,s=0,sign=1;
    for(i=1;i<=101;i+=2)
    {
        t=sign*i;
        s+=t;
        sign=-sign;
        //printf("%d\n",s);
    }
    printf("%d",s);
    return 0;
}
*/
/*
#include
int main()
{
    int m=5;
    if(m++>5)
        printf("%d\n",m);
    else
        printf("%d\n",m--);
    return 0;
}
*/
/*
#include
int main()
{
    printf("abc123\rdef");
}
*/
//实现一个小型计算器
/*
#include
int main()
{
    printf("hello");
}
*/

// 函数调用n的阶乘
/*
#include
int main()
{
    int fac(int n);
    int n,y;
    printf("please input:");
    scanf("%d",&n);
    y=fac(n);
    printf("%d!=%d\n",n,y);
    return 0;

}
int fac(int n){
    int f;
    if(n<0) printf("error");
    else if(n==0||n==1) f=1;
    else f=fac(n-1)*n;
    return (f);
}
*/
// 函数调用五个同学问年龄的问题
/*
#include
int main()
{
    int age(int n);
    printf("%d\n",age(5));
    return 0;
}
int age(int n)
{
    int c;
    if(n==1)
        c=10;
    else
        c=age(n-1)+2;
    return (c);
}
*/
/*
问题利用数组实现寻找最大值
*/
/*
#include
int main()
{
    int max(int x, int y);//定义实参
    int a[10],m,n,i;//这里需要用到的数组 和三个变量m用于最大值,n用于下标 i用于循环
    printf("enter 10 integer numbers;");//
    for (i=0;i<10;i++)//外层循环为了给数组赋初值
        scanf("%d",&a[i]);
    printf("\n");
    for(i=1,m=a[0],n=0;i<10;i++)//内层for循环,在这个吧a[0]给到了m
    {
        if(max(m,a[i])>m)//把m和下一个数作为实参传递到形参去运算判断最大值返回的数和上个最大值的m比较
        {
            m=max(m,a[i]);//如果条件满足把m的值替换掉
            n=i;//当前下标
        }
    }
    printf("the largest number is%d\nit is the %dth number.\n",m,n+1);

}
int max(int x,int y)
{
    return (x>y? x:y);
}
*/
/*
#include
int main()
{
    float x,y;//x表示服务类型 y表示汽油类型
    float n,m;//n表示汽油的数量
}
*/
/*
#include
#include 
int main(){
    int a[5]={1,4,5,8,9};
    int b[5]={2,6,8,10,11};
    int c[10];
    int i=0,j=0,k=0;
    while(i<5&&j<5){
        if (a[i]

int main()
{
    printf("Prime numbers between 1 and 100 are:\n");
    for (int i = 2; i <= 100; i++) {
        int j;
        for (j = 2; j <= i; j++)
            if (i % j == 0) {
                break;
            }

        if (j >= i) {
            printf("%d ", i);
        }
    }
    return 0;
}
*/
/*
#include 

int main()
{
    printf("Prime numbers between 1 and 100 are:\n");
    for (int i = 2; i <= 100; i++){
        int j;
        for (j = 2; j <= i; j++)
            if (i % j == 0)
            {
                break;
            }
            if (j>=i)
            {
                printf("%d ", i);
            }
    }
    return 0;
}
*/


//指针

/*
#include
int main()
{
    int *p1,*p2,*p,a,b;
    printf("please enter two integer numbers:");
    scanf("%d,%d",&a,&b);
    p1=&a;
    p2=&b;
    if(a
int main()
{
    void exchange(int *q1,int *q2,int *q3);
    int a,b,c,*p1,*p2,*p3;
    printf("please enter three numbers:");
    scanf("%d,%d,%d",&a,&b,&c);
    p1=&a;p2=&b,p3=&c;
    exchange(p1,p2,p3);
    printf("the order is:%d,%d,%d\n",a,b,c);
    return 0;
}
void exchange(int *q1,int*q2,int*q3)
{
    void swap(int *pt1,int*pt2);
    if(*q1<*q2)swap(q1,q2);
    if(*q1<*q3)swap(q1,q3);
    if(*q2<*q3)swap(q2,q3);

}
void swap(int * pt1,int * pt2)
{
    int temp;
    temp=*pt1;
    *pt1=*pt2;
    *pt2=temp;

}
*/
//数组交换
/*
#include
#define N 10
int main()
{
    int a[N]={0,1,2,3,4,5,6,7,8,9};
    int i,t;
    printf("Original array:\n");
    for(i=0;i


void reverse(char* s)
{
    // 获取字符串长度
    int len = 0;
    char* p = s;
    while (*p != 0)
    {
        len++;
        p++;
    }

    // 交换 ...
    int i = 0;
    char c;
    while (i <= len / 2 - 1)
    {
        c = *(s + i);
        *(s + i) = *(s + len - 1 - i);
        *(s + len - 1 - i) = c;
        i++;
    }
}

int main()
{
    char s[] = "www.runoob.com";
    printf("'%s' =>\n", s);
    reverse(s);           // 反转字符串
    printf("'%s'\n", s);
    return 0;
}

*/

/*
#include
int main(){
	char a[100];
	char *p;
	p=a;
	do{*p++=getchar();
	}
	while(*(p-1)!='\n');
	for(*p='\0';p>=a;p--)
	    printf("%c",*p);
	return 0;
}

*/


//100 随机产生若干个10以内的自然数存储在数组中,删除其中重复的元素,输出原数组和新数组




/*
#include
#include
#include
#define N 10
void main()
{
    int a[N];
    int i,j;
    srand(time(NULL));
        for(i=0;i
#define N 13
void main()
{
    int score[N],i,sum=0,max,min;
    for(i=0;iscore[i]) min=score[i];
    printf("%3d",(int)(sum-max-min)/(N-2));

}
}
*/


//98模拟投筛子游戏100次,编程统计并输出色子的6个面各自出现的次数


/*
#include
#define N 100
#include
#include
void main()
{
    int s[N];
    int a,b,c,d,e,f,i;
    srand(time(0));
    for(i=0;i
#include
#include

int main()
{
    int num[100], times[6] = {0}, i;
    srand(time(0));

    for(i = 0; i < 100; i++) {
        num[i] = rand() % 6 + 1;
        times[num[i] - 1]++;
        printf("%3d", num[i]);
    }

    printf("\n");

    for(i = 0; i < 6; i++) {
        printf("%d,%3d\n", i + 1, times[i]);
    }

    return 0;
}
*/


//有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号

/*
#include
#include
#include
#define M 3
#define N 4
int main()
{
    int i,j,max,a[M][N],m,n;
    srand(time(NULL));
    for(i=0; i
#include
#include
int main()
{

    char a[20]={0};
    char b[]="1234567";
    strncpy(a,b,3);
    puts(a);
    puts(b);
    return 0;
}
*/
/*
#include
#include
double f(double x)
{
    if (x<=-2) return -1*exp(2*x+1)+3;
    else if(x>-2&&x<=3) return 2*x-1;
    else return 2*log10(3*x+5)-11;

}


int main()
{
    double x;
    scanf("%lf",&x);
    printf("%.2lf",f(x));
}
*/
/*
#include
int main()
{
    int i,t=0,n,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        t=t*10+i;
        sum+=t;
    }
    printf("%d",sum);
}

*/


/*结构体类型数组编写一个程序用来输入学生的基本情况信息学生的基本情况信息包括;学号,姓名,c语言成绩,数学成绩,英语成绩,
要求统计每名同学的平均成绩和总成绩,对c语言成绩进行排序,统计c语言不及格的学生信息及不及格人数
*/
/*
#include
#define M 5
struct student
{
    int xh;
    char sm[8];
    float ccj;
    float sx;
    float yycj;
    float pjcj;
    float sumcj;
    float xx;
};
void main()
{
    struct student xs[M],a;
    int i,j,count=0;
    for(i=0;i
#define M 5

struct student
{
    int xh;
    char sm[8];
    float ccj;
    float sx;
    float yycj;
    float pjcj;
    float sumcj;
    float xx;
};

int main()
{
    struct student xs[M], a;
    int i, j, count = 0;

    for (i = 0; i < M; i++)
        scanf("%d, %s, %f, %f, %f", &xs[i].xh, xs[i].sm, &xs[i].ccj, &xs[i].sx, &xs[i].yycj);

    for (i = 0; i < M; i++)
    {
        xs[i].pjcj = (xs[i].ccj + xs[i].sx + xs[i].yycj) / 3;
        xs[i].sumcj = xs[i].ccj + xs[i].sx + xs[i].yycj;
    }

    for (i = 0; i < M; i++)
    {
        for (j = 0; j < M - i - 1; j++)
        {
            if (xs[j].ccj < xs[j + 1].ccj)
            {
                a = xs[j];
                xs[j] = xs[j + 1];
                xs[j + 1] = a;
            }
        }
    }

    for (i = 0; i < M; i++)
    {
        if (xs[i].ccj < 60)
        {
            xs[i].xx = xs[i].ccj;
            count++;
        }


    }

    for (i = 0; i < M; i++)
    {
        printf("%d, %s, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %d\n", xs[i].xh, xs[i].sm, xs[i].ccj, xs[i].sx, xs[i].yycj, xs[i].pjcj, xs[i].sumcj, xs[i].xx, count);
    }

    return 0;
}
*/



/*
#include 

#define MAX_STUDENTS 100 // 最大学生数量
#define PASS_GRADE 60 // 及格分数线

typedef struct {
    int studentID; // 学号
    char name[50]; // 姓名
    int cGrade; // C语言成绩
    int mathGrade; // 数学成绩
    int englishGrade; // 英语成绩
    float averageGrade; // 平均成绩
    int totalGrade; // 总成绩
} Student; // 学生结构体类型

void inputStudentInfo(Student *student, int n) {
    for (int i = 0; i < n; i++) {
        printf("Enter student %d's ID: ", i+1); // 输入学号
        scanf("%d", &student[i].studentID);
        printf("Enter student %d's name: ", i+1); // 输入姓名
        scanf("%s", student[i].name);
        printf("Enter student %d's C grade: ", i+1); // 输入C语言成绩
        scanf("%d", &student[i].cGrade);
        printf("Enter student %d's Math grade: ", i+1); // 输入数学成绩
        scanf("%d", &student[i].mathGrade);
        printf("Enter student %d's English grade: ", i+1); // 输入英语成绩
        scanf("%d", &student[i].englishGrade);
        student[i].totalGrade = student[i].cGrade + student[i].mathGrade + student[i].englishGrade; // 计算总成绩
        student[i].averageGrade = (float)student[i].totalGrade / 3; // 计算平均成绩
    }
}

void sortCGrades(Student *student, int n) {
    Student temp;
    for (int i = 0; i < n-1; i++) {
        for (int j = 0; j < n-i-1; j++) {
            if (student[j].cGrade > student[j+1].cGrade) { // 使用冒泡排序对C语言成绩进行排序
                temp = student[j];
                student[j] = student[j+1];
                student[j+1] = temp;
            }
        }
    }
}

void printStudentInfo(Student *student, int n) {
    printf("Student Information:\n");
    for (int i = 0; i < n; i++) {
        printf("Student %d\n", i+1);
        printf("ID: %d\n", student[i].studentID);
        printf("Name: %s\n", student[i].name);
        printf("C Grade: %d\n", student[i].cGrade);
        printf("Math Grade: %d\n", student[i].mathGrade);
        printf("English Grade: %d\n", student[i].englishGrade);
        printf("Total Grade: %d\n", student[i].totalGrade);
        printf("Average Grade: %.2f\n", student[i].averageGrade);
        printf("--------------------------\n");
    }
}

void printFailingCGrades(Student *student, int n) {
    int count = 0;
    printf("Students with failing C grades:\n");
    for (int i = 0; i < n; i++) {
        if (student[i].cGrade < PASS_GRADE) { // 判断C语言成绩是否不及格
            printf("Student ID: %d\n", student[i].studentID);
            printf("Name: %s\n", student[i].name);
            printf("C Grade: %d\n", student[i].cGrade);
            printf("--------------------------\n");
            count++; // 统计不及格人数
        }
    }
    printf("Total number of students with failing C grades: %d\n", count);
}

int main() {
    Student students[MAX_STUDENTS]; // 学生数组
    int numStudents; // 学生数量

    printf("Enter the number of students: ");
    scanf("%d", &numStudents); // 输入学生数量

    inputStudentInfo(students, numStudents); // 输入学生信息
    sortCGrades(students, numStudents); // 对C语言成绩排序
    printStudentInfo(students, numStudents); // 打印学生信息
    printFailingCGrades(students, numStudents); // 打印不及格学生信息

    return 0;
}

*/







































//1. 1£¡+2£¡+3£¡+...20!
/*
#include 
int main()
{
    int i;
    long sum=0,k=1;
    for(i=1;i<=20;i++)
    {
        k*=i;
        sum+=k;
    }
    printf("%d",sum);
}
*/

//方法2
/*
#include 
int main()
{
    int i,j;
    long sum=0,k;
    for(i=1;i<=20;i++)
    {
        k=1;
        for(j=1;j<=i;j++)
        {
            k*=j;
        }sum+=k;
    }printf("%d",sum);
}
*/

//2. 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
/*
#include
void reverse(int n)
{
    int next;
    if(n<=1)
    {
        next=getchar();
        putchar(next);
    }
    else
    {
        next=getchar();
        reverse(n-1);
        putchar(next);
    }
}

int main()
{
    int n=5;  //这里n是字母的个数,也可以通过键盘输入
    reverse(n);
    return 0;
}
*/

//3.  输入一个小于5位的正整数,分别输出它的位数及其逆序打印出各位数字
/*
#include


int main()
{
    int a,b,c,d,e,x;
    printf("请输入一个小于5位的正整数;");
    scanf("%d",&x);
    a=x/10000;
    b=x%10000/1000;
    c=x%1000/100;
    d=x%100/10;
    e=x%10;
    if(a!=0){
        printf("为5位数字,逆序为:%d%d%d%d%d\n",e,d,c,b,a);
    }
    else if(b!=0)
    {
        printf("为4位数字,逆序为:%d%d%d%d",e,d,c,b);

    }
    else if(c!=0){
        printf("位3位数字,逆序为:%d%d%d",e,d,c);
    }
    else if(d!=0){
        printf("为2位数字,逆序为:%d%d",e,d);
    }
    else if(e!=0){
        printf("位1位数字,逆序为:%d",e);
    }
    return 0;
}
*/

//编写一个程序输出 HelloWord

//4. 输入3个数abc 输出他们其中最大的数
/*
#include
int main()
{
   int a,b,c,max;
   printf("请输出a,b,c\n");
   scanf("%d%d%d",&a,&b,&c);
   if(a>b)
   {
       if(c>a)
        max=c;
       else
        max=a;
   }
   else{
    if(c>b)
        max=c;
    else
        max=b;
   }
   printf("max=%d",max);
   return 0;
}
*/


//5.  请输入星期几的第一个字母来判断是星期几,
//如果第一个字母一样,则继续判断第二个字母
/*
#include 

int main()
{
    char i, j;
    printf("请输入第一个字母:");
    scanf("%c", &i);
    getchar();//处理‘\n’
    switch (i)
    {
    case 'm':
        printf("monday\n");
        break;
    case 'w':
        printf("wednesday\n");
        break;
    case 'f':
        printf("friday\n");
        break;
    case 't':
        printf("请输入下一个字母\n");
        scanf("%c", &j);
        if ('u' == j) {
            printf("tuesday\n");
            break;
        }
        if ('h' == j) {
            printf("thursday\n");
            break;
        }
    case 's':
        printf("请输入下一个字母\n");
        scanf("%c", &j);
        if ('a' == j) {
            printf("saturday\n");
            break;
        }
        if ('u' == j) {
            printf("sunday\n");
            break;
        }
    default:
        printf("error\n");
        break;
    }
    return 0;
}
*/

// 6. 函数调用的用法实例
/*
#include
int main()
{
    int n;
    printf("打印多少次:");
    scanf("%d",&n);
    hello(n);
    return 0;
}
void hello(n)
{
    if(n)
    {
    printf("hello C!\n");
    hello(n-1);
    }

}

*/

//7. 求2/1,3/2, 5/3,8/5,13/8,21/13...这个数列的前20项之和

/*#include
int main()
{
    int i,t;
    float sum=0;
    float a=2,b=1;
    for(i=1;i<=20;i++)
    {
        sum=sum+a/b;
        t=a;
        a=a+b;
        b=t;
    }
    printf("%f\n",sum);
    return 0;
}
*/
//8. 打印出所有的水仙花数(一个三位数,其各位数字立方和等于该数本身)
/*
int main()
{
    int i,x,y,z;
    for(i=100;i<1000;i++)
    {
        x=i%10;
        y=i/10%10;
        z=i/100%10;

        if(i==(x*x*x+y*y*y+z*z*z))
            printf("%d\n",i);
    }
    return 0;
}
*/

//9. 输出101-200 之间的素数
/*
#include
int main()
{
    int i,j;
    int count=0;
    for(i=101;i<=200;i++)
    {
        for(j=2;j=i)
        {
            count++;
            printf("%d ",i);
            if(count%5==0)
                printf("\n");
        }
    }
    return 0;
}
*/

//10 . 输出9*9乘法表口诀
/*
#include
int main()
{
    int i,j,result;
    for(i=1;i<10;i++)
    {
        for(j=1;j<=i;j++)
        {
            result=i*j;
            printf("%d*%d=%-3d",i,j,result); //-3d表示左对齐,占3位
        }printf("\n");
    }
    return 0;

}
*/


//11 .输入三个整数xyz,请把这三个数由小到大输出。
/*
#include
int main()
{
    int x,y,z,t;
    printf("请输入三个数字:\n");
    scanf("%d %d %d",&x,&y,&z);
    //return 0;
    if(x>y){
        t=x;
        x=y;
        y=t;
    }
    if(x>z){
        t=x;
        x=z;
        z=t;
    }
    if(y>z)
    {
        t=y;
        y=z;
        z=t;
    }
    printf("从小到大的顺序:%d %d %d\n",x,y,z);
    return 0;
}
*/
// 12.判断2000-2500年中的每一年是否为闰年,并将结果输出
/*
#include
int main()
{
    int i;
    for(i=2000;i<=2500;i++){
        if(i%400==0||i%4==0&&i%100!=0){
            printf("闰年的年份:%d\n",i);
            continue;
        }
        else
        {
            continue;
            //printf("不是闰年的年份:%d\n",i);
        }
    }
}
*/

//13 . 输入一个数是否能被3和5整除
/*
#include
int main()
{
    int a;
    printf("请输入一个数:");
    scanf("%d",&a);
    if(a%3==0&&a%5==0){
        printf("这是能被3和5整除的数:%d",a);
    }
    else{
        printf("不能:%d",a);
    }
}
*/

//14 . 求1+2+3+...+100的和
/*
#include
int main()
{
    int i,a=0;
    for(i=1;i<=100;i++){
        a+=i;
    }
    printf("%d",a);
}
*/
//15. 求两个数m和n的最大公约数
/*
#include
//#include
int main(){
#include
int a,b,r,t;
printf(

你可能感兴趣的:(c++)