求二阶矩阵所有靠外侧的各元素之和

例矩阵为:

3,0,0,3

2,5,7,3

1,0,4,2

外侧和为18

#include <stdio.h>
add(int m,int n,int arr[]){
    int i,j,sum=0;				
    for ( i = 0; i < m; i=i+m-1)	
    for(j=0;j<n;j++)
        sum=sum+arr[i*n+j];
        for(j=0;j<n;j=j+n-1)
        for(i=1;i<m-1;i++)
            sum=sum+arr[i*n+j];
        return(sum);
}

int main(){
    int a[3][4]={3,0,0,3,2,5,7,3,1,0,4,2},s;
    s=add(3,4,a[0]);
    printf("s=%d\n",s);				//输出结果
    return 0;
}

找出大于输入整数且紧随这个整数的素数并作为函数返回

#include<stdio.h>
int main()
{
	int f(int s);
	int s;									//定义一个整数S。
	printf("请输入一个整数:\n");
	scanf_s("%d", &s);						//将接收的数据赋值给S
	printf("紧随整数%d的素数为:%d", s,f(s));
}
int f(int s) 
{
	int i, j, k;
	for (i = s + 1;; i++) {				//从定义的整数向后依次加
		for (j = 2; j < i; j++)			//依次循环被除数
			if (i % j == 0)break;		//如果i取余j==0,退出本轮循环
		if (i == j)return i;			//如果i=j返回i
	}
}



#include "stdio.h"
int fun(int x){
	int i;							//定义整型变量i
	while(1){						//while循环
	    x++;						//输入整数自增
		for(i=2;i<x;i++){			//循环被除数
			if(x%2 ==0)  break;		//如果x%2=0,结束循环
		}
		if(i==x) return x;			//如果i=x 返回整数x
	}

}
void main(){
	int x,i;					//定义整型变量下x,i
	scanf("%d",&x);				//接收输入整数赋值给x
	printf("%d",fun(x));		//输出结果
	
}

输入多个字符串,输出最短字符串

#include "stdio.h"
#include "string.h"
void main(){
	char a[10][100];			//定义一个字符串型二维数组
	int n[10]={0},t,j,i;		//定义整型变量t,j,i;定义整型一维数组
	for(i=0;i<10;i++){			//for循环到9停止
		gets(a[i]);				//接收字符串放到二维数组a[][]中 
		n[i]=strlen(a[i]);		//计算数组a中的字符串长度并赋值给数组n
	}
	t=0;						//将0赋值给整型变量t
	for(j=1;j<10;j++){			//for循环到9停止
		if(n[j]<n[t]) 			//比较数组中值的大小 
           t = j;				//将j的值赋值给t
	}
	printf("%s",a[t]);			//输出数组中a的第t行字符串
}

根据以下公式求∏的近似值,要求累加到某项小于1e-6时位置

$$\dfrac{Π}{2}=1+\dfrac{1}{3}+\dfrac{1×2}{3×5}+\dfrac{1×2×3}{3×5×7}+\dfrac{1×2×3×4}{3×5×7×9}+…+\dfrac{1×2×…×n}{3×5×…×(2n+1)}$$

#include <stdio.h>
void main(){
    float i,j,k,n,m,pi;
    n=1.0;   //分子
    m=1.0;  //分母
    i=0;    //分子步长
    j=1.0;  //分母步长
    pi=1.0;  
    while ((n/m)>=1e-6){
    i=i+1;
    n=n*i;
    j=j+2;
    m=m*j;
    pi+=(n/m);
    }
    printf("%f",2*pi);
}
 #include "stdio.h"
 #include "math.h" 
 void main() { 
 	 double fz = 1, fm = 3, s = 1, i = 1; 
 	 while (fabs(fz / fm) >= 1e-6) { 
		 s += (fz / fm); 
		 fz *= (++i); 
 		 fm *= 2 * i + 1;  
 	 } 
	 printf("%f", s * 2); 
} 

百马百石问题:有100匹马驮100担货。大马驮三担,中马驮两担,两匹小马驮一担问大中小马各多少匹?

#include <stdio.h>
int main(){
int hb,hm,hl,n=0;
for(hb=0;hb<=100;hb+=1)
for(hm=0;hm<=100-hb;hm+=1){
    hl=100-hb-hm;
    if(hb*6+hm*4+hl==200){
        n++;
        printf("hb=%d\thm=%d\thl=%d\n",hb,hm,hl);
    }
}
printf("n=%d\n",n);
return 0;
}

打鱼晒网问题:假设从某天开始“三天打鱼两天晒网”,问这个人第N天是打鱼还是晒网?

swich语句

#include <stdio.h>
int main()
{
int i;
scanf("%d",&i);
switch (i%5)
{
case 1:
case 2:
case 3:printf("打鱼"); break;
default:printf("晒网"); break;
}
}

if语句

#include "stdio.h"
int main()
{
    int day;
    scanf("%d",&day);
    int left;
    left=day%5;
    if(left==0||left==4)
    {
        printf("晒网 %d",day);
    }
    else
    {
        printf("打鱼 %d",day);
    }
}

输入十个数据去掉最高分去掉最低分求平均值

#include "stdio.h"
// 主函数
int main()
{
int score[10],max,min,sum;//定义int型数组score,定义int型变量min,max,sum
float aver;                 //定义float型变量aver
input(score,10);            //录入十个数据
sum=ssum(score,10);         //求和
max=smax(score,10);         //求最大值
min=smin(score,10);         //求最小值
aver=(sum-max-min)*1.0/8;   //求平均值
printf("%f",aver);          //打印平均值
}

//录入十个数据
int input(int a[],int i){
int j;
for(j=0;j<10;j++){
    printf("请输入第%d个评分",j+1);
    scanf("%d",&a[j]);
}
}
//求和
int ssum(int a[],int i){
    int sum=0,j;
    for(j=0;j<i;j++){
        sum+=a[j];
        }
return sum;
}
//求最大值
int smax(int a[],int i){
    int j,max=a[0];
    for(j=1;j<i;j++){
    if(max<a[j])
    max =a[j];
    }
    return max;
}
//求最小值
int smin(int a[],int i){
    int j,min=a[0];
    for(j=1;j<10;j++){
    if(min>a[j])
    min=a[j];
    }
    return min;

}

编写函数:删去一堆数组中所有重复的数只保留不同的数,输出主函数原来元素和删除后的元素,数据已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

例一堆数据中的数据是:2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10

删除后数组中内容为:2 3 4 5 6 7 8 9 10

比较数组a和b,如果b数组没有这个数,则将这个数放入数组b

#include "stdio.h"
void main()
{
    int a[19]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10};
	int b[19];
	int i,j=0,k;
	for(i=0;i<=18;i++){
		for(k=0;k<j;k++){
		    if(a[i] == b[k]) break;
		}
		if(k==j) b[j++] = a[i];
c
	}
	for(k=0;k<j;k++){
		printf("%d  ",b[k]);
	}
}

遍历数组,如果相同则数据前移一位

#include "stdio.h"
void main()
{
    int a[19]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10};
	int i,j,n=19,x;
    for(i=0;i<n;i++){           //循环判断数组中每一个数
        for(j=i+1;j<n;j++){     //判断a[i]后边的数是否和a[i]相等
        if(a[i]==a[j]){
            for(x=j;x<n-1;x++)  //将a[j]后面的元素全往前移一个位置
            a[x]=a[x+1];
            j--;                //a[j+1]取代a[j]位置,为使下次从a[j+1]开始查找,j减一(为使j保持不变)
            n--;                //数组长度减一
        }
    }
}
printf("剩余元素个数%d\n",n);
for(i=0;i<n;i++)
printf("%d\t",a[i]);
}

数字组合:有1,2,3,4,四个数字,能组成多少互不相同且不重复的三位数

#include <stdio.h>
main(){
    int i,j,k,n=0;
    for(i=1;i<=4;i++)
    for(j=1;j<=4;j++)
    for(k=1;k<=4;k++)
    if(i!=j && i!=k && k!=j){
    printf("%d%d%d \t",i,j,k);				//打印能组成的所有组合
    n++;
    }

printf("\n能组成%d种互不相同且不重复的数字",n);			//打印结果
}

求三行三列矩阵a\[3\]\[2\]=\{1,2,3,4,5,6,7,8,9},非对角线之和

#include <stdio.h>
main(){
    int a[3][3]={1,2,3,4,5,6,7,8,9};
    int i,j,sum=0;
    for(i=0;i<3;i++){
    for(j=0;j<3;j++){
        if(i!=j && i+j!=2)
        sum=sum+a[i][j];
    }
    }
printf("sum=%d\t",sum);
}

学生成绩分布:读入n个学生成绩进行统计,大于90得A,大于80小于90得B,大于70小于80得C,大于60小于70得D,小于60得E。

#include <stdio.h>
main(){
    int n,i,j,k;
    int a=0,b=0,c=0,d=0,e=0;
    printf("请输入学生人数");
    scanf("%d",&n);
    if(n>100)
    printf("请输入小于100的数字");
    else{
    for(i=0;i<n;i++){
        printf("请输入第%d个学生分数",i+1);
        scanf("%d",&j);
        if(j>=90){
            a++;
        }else if(j<90 && j>=80){
            b++;
        }else if(j<80 && j>=70){
        }else if(j<70 && j>=60){
        d++;
        }else  e++;
    }
    printf("成绩在A的学生有%d人\t",a);
    printf("成绩在B的学生有%d人\t",b);
    printf("成绩在C的学生有%d人\t",c);
    printf("成绩在D的学生有%d人\t",d);
    printf("成绩在E的学生有%d人",e);
    }
}

输入10个整数存入数组a,在输入一个整数x,在数组中查找x,找到x则输出x在10个数中的序号,找不到输出“no found”

#include <stdio.h>
main(){
 int a[10];
 int i,k,l=0;
 for(i=0;i<10;i++){
    printf("请输入第%d个整数",i+1);
    scanf("%d",&a[i]);
 }
 printf("请输入一个数判断是否在数组中:");
 scanf("%d",&k);
 for(i=0;i<10;i++){
if(k==a[i]){
 l=i+1;
}
}
if(l>0) printf("这是第%d个数",l);
else printf("no found");
}
int Search(int a[],int n, int x);
int Search(int a[],int n, int x){
int i,j;
for(i=0;i<n;i++){
if(a[i]==x) return i;
}
return -1;
}

int main(){
int i,n,a[10];
printf("Input 10 numbers: n");
for(i=0;i<10;i++){
scanf("%d",&a[i]);
}
printf("Input x:\n");
scanf("%d",&n);
i=Search(a,10,n);
if(i==-1) printf("Not found!\n");
else printf("下标是 %d\n",i);
}

程序功能:从键盘上输入两个学生的四门成绩,求每个学生的平均成绩,并统计不及格数

#include <stdio.h>
main(){
    int i,j,k,n,sum1=0;
    float l;
    for(j=1;j<=2;j++){
        sum1=0;
        n=0;
    for ( i = 1; i <= 4; i++){
        printf("请输入第%d学生第%d个成绩",j,i);
        scanf("%d",&k);
        sum1=sum1+k;
        if(k<60){
            n++;
        }
    }
        l=sum1/4.00;
    printf("第%d个学生平均成绩为%.2f,不及格门数:%d\n",j,l,n);
}
}