/*设有文件data.txt和text.txt(格式可参考实体提供的相关样例文档,也可以自行拟定文档内容格式),
分别保存了一批 数值型数据和若干行字符串。
请编写程序完成如下功能: 通过命令行参数传入一个整数值给主程序,
1. 如果该值为 1,则打开文件 data..txt,从文件中读取一批实数,并存入数组中,由于输入数据个数不定,
因此 采用如下结构描述输入数据对数组中的占用情况,计算这批数的平均值并输出。
Typedef struct darray
{
double * pdata; //存贮数组的首地址
int len //存贮数组的实际长度(本次计算由文件data.txt输入的数组元素个数)
int maxlen; //存贮数组的最大长度(即最多可存储多少个元素)
}DARRAY
2
【设计要求】请同学们自行学习标准输入输出流及 freopen 函数相关知识,使用输入输出重定向的方式实现本 功能。
2. 如果值为2,打开文件text.txt,统计这批字符串中字母a-z分别出现的次数(不区分大小写),
并将统计结果 输出到文件result.txt中,格式如下(设A出现10次,B出现13次,……):
3. 如果值为其它值,则退出程序。
4. 如果命令行无参数,则从键盘输入一批大于零的整数(设个数为n,事先未知,输入0表示本次输入结束),
由于x=0, 1, 2,…n-1做为横坐标,由这批数做为纵坐标,并将这批点在坐标柚上连成拆线后与x轴及y轴围成 的图形,
计算该图形的面积,并将结果输出到控制台上。
【设计要求】要求在程序实现过程中必须采用如下的程序框架:
int x;
……
while(scanf(“%d”,&x) == 1)
{
……
3
}
5. 请完成上述功能,并编写提示菜单进行测试。
*/
#include<stdio.h>
#include<stdlib.h>
struct darray
{
double * pdata; //存贮数组的首地址
int len; //存贮数组的实际长度(本次计算由文件data.txt输入的数组元素个数)
int maxlen; //存贮数组的最大长度(即最多可存储多少个元素)
}Darray;
int main(int argc, char *argv[])
{
int a,b=0,ave;
char op;
int num[26], i;
int shuzi[1000];
if (*argv[1] = 1)
{
freopen("data.txt", "r", stdin);
Darray.len = 0;
while (scanf("%d", &a) != EOF)
b = b + a;
Darray.len++;
ave = b / Darray.len;
printf("%d\n", ave);
fclose(stdin);
}
if (*argv[1] = 2)
{
freopen("text.txt", "r", stdin);
freopen("result.txt", "w", stdout);
while (scanf("%c", &op) != EOF)
switch (op)
{
case 'A':num[0]++; break;
case 'B':num[1]++; break;
case 'C':num[2]++; break;
case 'D':num[3]++; break;
case 'E':num[4]++; break;
case 'F':num[5]++; break;
case 'G':num[6]++; break;
case 'H':num[7]++; break;
case 'I':num[8]++; break;
case 'J':num[9]++; break;
case 'K':num[10]++; break;
case 'L':num[11]++; break;
case 'M':num[12]++; break;
case 'N':num[13]++; break;
case 'O':num[14]++; break;
case 'P':num[15]++; break;
case 'Q':num[16]++; break;
case 'R':num[17]++; break;
case 'S':num[18]++; break;
case 'T':num[19]++; break;
case 'U':num[20]++; break;
case 'V':num[21]++; break;
case 'W':num[22]++; break;
case 'X':num[23]++; break;
case 'Y':num[24]++; break;
case 'Z':num[25]++; break;
case 'a':num[0]++; break;
case 'b':num[1]++; break;
case 'c':num[2]++; break;
case 'd':num[3]++; break;
case 'e':num[4]++; break;
case 'f':num[5]++; break;
case 'g':num[6]++; break;
case 'h':num[7]++; break;
case 'i':num[8]++; break;
case 'j':num[9]++; break;
case 'k':num[10]++; break;
case 'l':num[11]++; break;
case 'm':num[12]++; break;
case 'n':num[13]++; break;
case 'o':num[14]++; break;
case 'p':num[15]++; break;
case 'q':num[16]++; break;
case 'r':num[17]++; break;
case 's':num[18]++; break;
case 't':num[19]++; break;
case 'u':num[20]++; break;
case 'v':num[21]++; break;
case 'w':num[22]++; break;
case 'x':num[23]++; break;
case 'y':num[24]++; break;
case 'z':num[25]++; break;
}
for (i = 0; i <= 25; i++)
printf("%d\n", num[i]);
fclose(stdin);
fclose(stdout);
}
if (argc = 0)
{
int i, c = 0;
double s;
printf("Please input some numbers,and 0 is the symbel of the end");
for (i = 0; i <= 999; i++)
{
scanf("%d", &shuzi[i]);
c = c + shuzi[i];
if (shuzi[i] = 0)break;
}
s = c - shuzi[0] / 2 - shuzi[i] / 2;
}
return 0;
}
相关分类