序号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;
}