粗手,写的不好!
下面是我顺便练习的几个习题,感觉写的不好,希望高手指点一二!2、编程实现:有二维数组a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},将数组a的每一行元素均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),按行输出新数组。(20分)
#include<conio.h>
#include<stdio.h>
#define LONG 3
void main()
{
double a[LONG][LONG]={{5.4,3.2.8},{6,4,3.3},{7,3,1.3}},(*p_a)[LONG];
int i,j;
p_a=a;
for(i=0;i<LONG;i++)
for(j=0;j<LONG;j++)
*((*p_a+i)+j)=*(*(p_a+i)+j)/((*(*(p+i)+i))*1.0);
for(i=0;i<LONG;i++)
for(j=0;j<LONG;j++)
printf(“%-4.lf”,a[i][j]);
getch();
}
4、编写函数fun,通过指针实现将一个字符串反向。要求主函数输入字符串,通过调用函数fun实现输入字符串反向。(20分
#define M 40
void fun(char *p_str);
#include<conio.h>
#include<string.h>
#include<stdio.h>
void main()
{
char str[M];
gets(str);
fun(str);
getch();
}
void fun(char *p_str)
{
int i;
char p[M];
for(i=0;i<strlen(p_str);i++)
*(p+i)=*(p_str+strlen(p_str)-i-1);
*(p+strlen(p_str))='\0';
puts(p);
}
5、已知学生三门课程基本信息如下。请使用结构体编程,计算学生三门课程平均成绩后,列表输出学生的姓名、数学、英语、计算机、平均分信息,并按平均分排序。(20分)
姓名 数学 英语 计算机
Mary 93 100 88
Jone 82 90 90
Peter 91 76 71
Rose 100 80 92
#define M 10
#define N 12
#include<conio.h>
#include<stdio.h>
typedef struct node{
char str[N];
int math,english,computer;
double aver;
}DATA;
void main()
{
int i,j;
DATA _stutdent[M],date;
printf(“姓名 数学 英语 计算机”);
for(i=0;i<M;i++){
gets(_stutdent[i].str);
scanf("%d%d%d",&_stutdent[i].math,&_stutdent[i].english,&_stutdent[i].computer);
getchar();
_stutdent[i].aver=(_stutdent[i].math+_stutdent[i].english+_stutdent[i].computer)*1.0/3;
}
for(i=0;i<M;i++)
for(j=i+1;j<M-1;j++){
if(_stutdent[j].aver>_stutdent[j+1].aver){
date=_stutdent[j];
_stutdent[j]=_stutdent[j+1];
_stutdent[j+1]=date;
}
}
for(i=0;i<M;i++){
puts(_stutdent[i].str);
printf("%-4d%-4d%-4d%-4.2lf\n", _stutdent[i].math,_stutdent[i].english,_stutdent[i].computer,_stutdent[i].aver);
}
getch();
}