C语言简单算法样例

C语言简单算法样例

整理资料的时候发现之前学习的一些简单算法样例,整理了一下做个汇总,对之前的学习做个小结,例子简单适用,偶尔回味感也不错。

  1. 从键盘输入10个学生的成绩,求出成绩中的最高分、最低分、平均分以及超过平均分的人数并输出
#include<stdio.h>
void main()
for(j=0;j<9;j++)//由小到大排列
{
      for(i=0;i<(9-j);i++)
      {
            if(data[i]>data[i+1])
            {
                  temp=data[i];
                  data[i]=data[i+1];
                  data[i+1]=temp;
            }
      }
} 
//最大值为data[9]
//最小值为data[0]
//平均值为avr:
sum=0;
for(i=0;i<10;i++)
{
    sum += data[i];
}
avr = sum/10;
//超过平均值的人数为num:
num=0;
for(i=0;i<10;i++)
{
    if( data[i] > avr)
    {
        num++;
    }
}
  1. 从键盘输入10个整数存放于数组中,并从小到大进行排序,并把排序结果输出。、
#include"stdio.h"
void main()
{int a[10],i,j,m;
 printf("please enter the number:\n");
 for(i=0;i<10;i++)
 {
   scanf("%d",&a[i]);
 }
 for(i=0;i<10;i++)
 {
  for(j=i+1;j<10;j++)
  {
  if(a[i]>a[j])
  {m=a[j];a[j]=a[i];a[i]=m;}
  }
 }
 for(i=0;i<10;i++)
  printf("%d  ",a[i]);
}
  1. 从键盘输入一串字符,统计其中英文字母,空格和数字以及其他字符的个数。
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#define M  100

void main()
{
char pc[M];

printf("\n输入字符串:");

gets(pc);

int len = strlen(pc);
int zm=0, sz=0, kg=0, qt;

for(int i=0;i<M;i++)
{
if(isdigit(pc[i])) sz++;			// 判断字符是否数字
if(isalpha(pc[i])) zm++;			// 判断字符是否字母
if(pc[i]==' ') kg++;				// 判断字符是否空格
}

qt = len-zm-sz-kg;

printf("字符串中字母个数为:%d、数字个数为:%d、空格个数为:%d、其它字符个数为:%d .\n", zm, sz, kg, qt);
}
  1. 从键盘输入一个正整数n,计算1(1!)-1(2!)+1(3!)-1(4!)+…+1(n!)的值保留4位小数
#include<stdio.h>
#include <stdlib.h>
int factorial(int n);
double fact(int n);
double power(int n);
int main()
{
    int i,j;
	double ff=0;
	double mm;
	printf("Input a integer:");
    scanf("%d",&i);
	mm = fact(i);
	printf("%f\n",mm);
	for(j=1;j<=i;j++)
	{
		ff+=power(j)*fact(j);
	}
	printf("%0.4f\n",ff);
    return 0;   
}
int factorial(int n)
{
    if(n==0||n==1)
		return 1;
    else 
		return n*factorial(n-1);
}
double fact(int n)
{
	double result,f;
	char s[20];
	f = factorial(n);
	result = 1/f ;
	sprintf(s,"%0.4f",result);
	result = atof(s);
	return result;
}
double power(int n)
{
	int i;
	double result=-1;
	for(i=0;i<n;i++)
	{
		result*=-1;
	}
	return result;
}
  1. 任意输出3个数字 按从小到大排序输出
#include<stdio.h> 
void main() 
{ 
float a,b,c,t; 
printf("input 3 number:\n"); 
scanf("%f%f%f",&a,&b,&c); 

if(a>b) 
t=a; 
a=b; 
b=t; 

if(a>c) 
t=a; 
a=c; 
c=t; 

if(b>c) 
b=t; 
t=c; 
c=t; 

printf("the 3 number =%f %f %f",a,b,c); 
}

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值