这个是作者整理的c语言练习题,题目的答案由作者编写,所以写的一定不怎么地,希望大家理解

1,九九乘法表,i控制行,j控制列

#include <stdio.h>
int main() {
    int i,j;
    for(i=1;i<=9;i++)
	{
        for(j=1;j<=9;j++)
		{
            if(j>i)
                printf("%d*%d=%2d  ",i,j,i*j);
        }
        printf("\n");  
    }
    return 0;
}

2,斐波那契数列(兔子数列)

#include <stdio.h>

main(void)
{
	long a = 1;
	long b = 1;
	long c;
	int i,n;
	printf("请输入一个正整数,我们会输出该数加2项的斐波那契数列的值");
	scanf("%d",&n);
	while(1)
	{
		c = b;
		b = a + b;
		a = c;
		i++;
		if (i > n) break; 
	}
	printf("%d", a);
	
	return 0;
 } 

3,判断101到200之间有多少个素数,并输出所有素数及素数的个数

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

int main(void){
	int m,i,k,h=0,leap = 1;
	printf("\n");
	for(m = 101;m<=200;m++){
		k = sqrt(m+1);
		for(i = 2;i <= k;i++)
			if(m%i==0){
				leap = 0;break;
			}
			if(leap){
				printf("%-4d", m);
				h++;
				if(h%10 == 0)
				printf("\n");
		}
		leap = 1;
	}
	printf("The total is %d",h);
} 

4,一个数恰好等于它的因子之和,我们称这个数为完数,如6=1+2+3。请使用编程手段找出1000以内的所有完数。

#include <stdio.h>
int main(void)
{
	int a;
	int i = 1;
	while(a < 1000)
	{
		a = i +i*(i-1)/2; 
		i++;
		printf("%d\n",a);
	}
	return 0;
 } 

5,编程打印杨辉直角三角形(请百度直角杨辉三角)


#include<stdio.h>
int main()
{
int n;
printf("输入行数:");
while(scanf("%d",&n)!=EOF)
{
int a[31][31];
int i,j,k;
for(i=1;i<=30;i++)
a[i][1]=a[i][i]=1;
if(n==1)printf("1\n");
if(n>=2)printf("1\n1 1\n");
for(i=3;i<=n;i++)
{
printf("1 ");
for(j=2;j<i;j++)
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
printf("%d ",a[i][j]);
}
printf("%d\n",a[i][i]);
}
printf("\n");
}
}

6,通过键盘输入3名学生4门课程的成绩,分别求每个学生的平均成绩和每门课程的平均成绩。要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。

#include <stdio.h>
int sum=0;
double number(int a[100][100],int x){
    int data=0;
    int y=x-1;
    for (int i = 0; i < 100; ++i) {
        for (int j = 0; j < 100; ++j) {
            data=data+a[i][j];
        }
    }
    return (double)data/y;
}
void math(int a[100][100],double b[100],int s,int temp) {
    int h = 0;
    printf("      课程:");
    for (; h < 100; h++) {
        if (a[h][0] != 0) {
            for (int m = 0; m < 100; m++) {
                if (a[h][m] != 0) {
                }
                if (a[h][m] == 0 && a[h][m + 1] == 0) {
                    for (int i = 0; i < m; ++i) {
                        printf("第%d门课 ",i+1);
                    }
                    break;
                }
            }
            goto loop;
        }
    }
    loop:printf("个人均值");
    printf("\n");
    int i = 0;
    for (; i < 100; i++) {
        if (a[i][0] != 0) {
            printf("第%d个人成绩:",i+1);
            for (int m = 0; m < 100; m++) {
                if (a[i][m] != 0) {
                    printf("%d      ", a[i][m]);
                }
                if (a[i][m] == 0 && a[i][m + 1] == 0) {
                    sum=sum+m;
                    printf("%.2f ", b[i]);
                    printf("\n");
                    break;
                }
            }
        }
    }
    int data1 = 0;
    int fin=s+1;
    float dataint[100] = {0};
    for (int m = 0; m < 100; ++m) {
        for (int j = 0; j < 100; ++j) {
            data1=data1+a[j][m];
        }
        dataint[m]=(double)data1/fin;
        data1=0;
    }
    printf(" 科目均值为:");
    for (int i = 0; i < 100; ++i) {
        if (dataint[i] != 0.00) {
            printf("%.2f   ",dataint[i]);
        }
        if (dataint[i] == 0.00 && dataint[i+1] == 0.00) {
            printf("%.2f (总均值)\n", number(a,sum+1));
            break;
        }
    }
}
double county(int a[100][100],int num,int temp){
    float result;
    int n=temp+1;
    int data=0;
    for (; temp !=-1; temp--) {
        data=data+a[num][temp];
    }
    result=(double)data/n;
    return result;
}
int main(){
    int arr[100][100] = {0};
    double cout[100] = {0.0};
    float data;
    int numdoll = 0;
    int temp=0;
    for(int i = 0 ; i<5;i++) {
        sum=0;
        temp=0;
        printf("请输入数字:");
        while (scanf("%d", &arr[numdoll][temp]) != EOF && getchar() != '\n') //循环读入多组整型数据,都以空格分隔。
            temp++;
        data=county(arr,numdoll,temp);
        cout[numdoll]=data;
        math(arr,cout,numdoll,temp);
        numdoll++;
        }
    return 0;
}

运行效果:


You got to put the past behind you before you can move on.