#include<stdio.h>
动态数组(表的构建和填充)
原创
©著作权归作者所有:来自51CTO博客作者wangqianglin的原创作品,请联系作者获取转载授权,否则将追究法律责任
#include<stdlib.h>
#include<limits.h>
int** buildTsble(void);
void fillTable(int** table);
void processTable(int** table);
int smaller(int first,int second);
int larger(int first,int second);
int rowMinimum(int* rowRtr);
int rowMaximum(int* rowPtr);
float rowAverage(int* rowPtr);
//动态数组(main)
int main() {
int** table;
table=buildTsble();
fillTable(table);
processTable(table);
return 0;
}
//动态数组(buildTable)
int** buildTsble(void) {
int rowNum;
int colNum;
int** table;
int row;
printf("\nEnter the number of rows in the table: ");
scanf("%d",&rowNum);
table=(int**)calloc(rowNum+1,sizeof(int*));
for(row=0;row<rowNum;row++) {
printf("Enter number of integers in row %d: ",row+1);
scanf("%d",&colNum);
table[row]=(int*)calloc(colNum+1,sizeof(int));
table[row][0]=colNum;
}
table[row]=NULL;
return table;
}
//动态数组(fillTable)
void fillTable(int** table) {
int row=0;
printf("\n========================");
printf("\nNow we fill the table.\n");
printf("\nFor each row enter the data");
printf("\nand press return: ");
printf("\n=========================\n");
while(table[row]!=NULL) {
printf("\nrow%d (%d integers)=====> ",row+1,table[row][0]);
for(int columm=1;columm<=*table[row];columm++)
scanf("%d",table[row]+columm);
row++;
}
return ;
}
//动态数组:表处理
void processTable(int** table) {
int row=0;
int rowMin;
int rowMax;
float rowAve;
while(table[row]!=NULL) {
rowMin=rowMinimum(table[row]);
rowMax=rowMaximum(table[row]);
rowAve=rowAverage(table[row]);
printf("\nThe statistics for row %d ",row+1);
printf("\nThe minimum: %5d",rowMin);
printf("\nThe maximum: %5d",rowMax);
printf("\nThe average: %8.2f",rowAve);
row++;
}
return ;
}
//动态数组:查找最小值
int rowMinimum(int* rowPtr) {
int rowMin=INT_MAX;
for(int columm=1;columm<=*rowPtr;columm++)
rowMin=smaller(rowMin,*(rowPtr+columm));
return rowMin;
}
//动态数组:查找航最大值
int rowMaximum(int* rowPtr) {
int rowMax=INT_MIN;
for(int columm=1;columm<=*rowPtr;columm++)
rowMax=larger(rowMax,*(rowPtr+columm));
return rowMax;
}
//动态数组:查找平均值
float rowAverage(int* rowPtr) {
float total=0;
float rowAve;
for(int columm=1;columm<*rowPtr;columm++)
total+=(float)*(rowPtr+columm);
rowAve = total/ *rowPtr;
return rowAve;
}
//动态数组:查找更小值
int smaller(int first,int second) {
return (first<second?first:second);
}
//动态数组:查找更大值
int larger(int first,int second) {
return (first>second?first:second);
}
上一篇:我的素数筛选法
下一篇:HDJ(2111)A + B
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
BeanFactory容器的构建和使用示例
其中,调用 getBean 的时候,从 BeanDefinition 所属的 Map 里,拿出 Class 对象进行实例化,同时,如果有依赖关
java 开发语言 xml spring 配置文件