c语言编程由易入难——序号2

序号3链接单链表实现:

c语言编程由易入难——序号3

1.从键盘输入若干个学生的成绩,输入负数时表示输入结束,输出平均成绩和低于平均分的学生成 绩。(平均值精确到小数点后两位)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 50

int main(void){
    float sum,form[50],ave,score;
    int i=0;
    while(1){
        printf("输入第%d:成绩",i);
        scanf("%f",&score);

        if(score<0)
            break;
        sum=sum+score;
        ave=sum/i;
        form[i]=score;
        i++;
    }
    printf("低于平均分%.2f的数\n",ave);
    for(int j=0;j<i;j++){
        if(form[j]<ave)
            printf("序号:%d 分数:%.2f\n",j,form[j]);

    }
    return 0;
}

2.编程输出如下图所示图形。

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

void printangle(void){
  int row=4,column;
    for(int i=0;i<row;i++){
        for(int j=0;j<i*2+1;j++)
            printf("*");
        printf("\n");
    }
}
void printfgraph2(void){
    char sign='A';
    for(int i=0;i<4;i++){
        for(int j=0;j<3-i;j++){
            printf(" ");
        }
        for(int k=0;k<i*2+1;k++){
            printf("%c",sign);
        }
        sign++;
        printf("\n");
    }
}
int main(void){

    printangle();
    printfgraph2();
    return 0;
}

3.文件的高级操作,读取text.dat文件数据进行加密后写入到text2.dat文件中

加密规则:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//全局变量
char xx[80][80],(*p)[80]=xx;//二维数组指针p
int Maxline=0;
int readdat(){

    FILE *fp;int i=0;//声明文件指针
    if((fp=fopen("test.dat","r"))==NULL)//实例化指针,后面‘r'为指针权限
        return 1;
    while(fgets(p[i],80,fp)!=NULL) //读数据入缓存中,当读到换行或是’\0'或80-1个字符则函数返回
        i++;
    Maxline=i;
    fclose(fp);
    return 0;

}
void writedat(){
    FILE *fp;int i,j;
    fp=fopen("test1.dat","w");//实例化文件指针
    for(i=0;i<Maxline;i++){
        printf("%s\n",p[i]);
        fprintf(fp,"%s",p[i]);//将缓存的数据写入文件中
    }
    fclose(fp);//别忘关闭文件传输
}

void encryptchar(){
    int temp;
    for(int i=0;i<Maxline;i++){
        for(int j=0;xx[i][j]!='\0';j++){//加密规则
            temp=(int)xx[i][j]*11%256;
            if((temp<=32 || (int) xx[i][j]%2==0)==0)
                xx[i][j]=(char)temp;
    }}

}
int main(void){

        if(readdat())   {
            printf("抛出异常\n");
            return 0;
        }
        encryptchar();

        writedat();

        return 0;


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗的蜗牛小猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值