电大C语言程序设计A 求答案!急!!!

作者&投稿:彩惠 (若有异议请与网页底部的电邮联系)
#include<stdio.h>

#include<stdlib.h>

void main(void)

{

int x,n=0;

FILE* f1; //定义一个文件指针

f1=fopen("data.txt","w"); //在程序所在项目内建立一个空文件

if (f1==NULL)
{ //当f1对应的文件没有建立和打开时则退出运行

printf("不能够打开文件!\n");

exit(1);

}

printf("从键盘向数据文件输入一批整数,直到输入0时结束!\n");

scanf("%d",&x); //从键盘读入一个整数

while(x!=0) { //对每个有效地整数进行处理

int i=0, d[6];
n++;

if(x<0) { //若为负数则向文件写入一个负号

fputc('-', f1); x=-x;

}

while(x/10!=0)
{ //用d数组保存整数中的每个数字位

d[i++]=x%10; x=x/10;

}

fputc(48+x, f1); //把整数的最高位数字写入文件中

while(--i>=0) //依次把整数的后续每位数字写入文件中

fputc(48+d[i], f1);

fputc(' ', f1); //每个整数后写入一个空格
if((n%3==0)&&n)
{
fputc('\n', f1); //每3个整数后写入一个换行符
}

scanf("%d",&x); //再从键盘读入一个整数

}
fprintf(f1,"Total number is %d\n",n);

fclose(f1);
//关闭f1所对应的data.txt文件

}
出题人给的这程序有点累赘,要把数输出直接fprintf(f1,"%d",x);就行了,还要搞得这么乱,这不是影响考生发挥么?

电大C语言程序设计A 求答案! 急!!!!~

#include "stdio.h"
#include "string.h"
void main()
{
unsigned char input_char[60],i;
unsigned char number[26][2]={0};
unsigned char lengthofinput=0;
unsigned char legalflag=0;
while(!legalflag) {
printf("请连续输入字母(不区分大小写),不大于50,输入数字和其他符号无效,以回车结束
");
scanf("%s",input_char);
lengthofinput=strlen(input_char);
if( lengthofinput<=50) legalflag=1;
if(legalflag)
{
for(i=0;i<lengthofinput;i++){
if(((input_char[i])0x5A)&&((input_char[i])0x7A))
{ legalflag=0;break;}
if(legalflag)
{
switch (input_char[i])
{
case 0x41:case 0x61: number[0][0]='a';number[0][1]++; break;
case 0x42:case 0x62: number[1][0]='b';number[1][1]++; break;
case 0x43:case 0x63: number[2][0]='c';number[2][1]++; break;
case 0x44:case 0x64: number[3][0]='d';number[3][1]++; break;
case 0x45:case 0x65: number[4][0]='e';number[4][1]++; break;
case 0x46:case 0x66: number[5][0]='f' ;number[5][1]++; break;
case 0x47:case 0x67: number[6][0]='g';number[6][1]++; break;
case 0x48:case 0x68: number[7][0]='h';number[7][1]++; break;
case 0x49:case 0x69: number[8][0]='i';number[8][1]++; break;
case 0x4A:case 0x6A: number[9][0]='j';number[9][1]++; break;
case 0x4B:case 0x6B: number[10][0]='k';number[10][1]++; break;
case 0x4C:case 0x6C: number[11][0]='l';number[11][1]++; break;
case 0x4D:case 0x6D: number[12][0]='m';number[12][1]++; break;
case 0x4E:case 0x6E: number[13][0]='n';number[13][1]++; break;
case 0x4F:case 0x6F: number[14][0]='o';number[14][1]++; break;
case 0x50:case 0x70: number[15][0]='p';number[15][1]++; break;
case 0x51:case 0x71: number[16][0]='q';number[16][1]++; break;
case 0x52:case 0x72: number[17][0]='r';number[17][1]++; break;
case 0x53:case 0x73: number[18][0]='s';number[18][1]++; break;
case 0x54:case 0x74: number[19][0]='t';number[19][1]++; break;
case 0x55:case 0x75: number[20][0]='u';number[20][1]++; break;
case 0x56:case 0x76: number[21][0]='v';number[21][1]++; break;
case 0x57:case 0x77: number[22][0]='w';number[22][1]++; break;
case 0x58:case 0x78: number[23][0]='x';number[23][1]++; break;
case 0x59:case 0x79: number[24][0]='y';number[24][1]++; break;
case 0x5A:case 0x7A: number[25][0]='z';number[25][1]++; break;
default: break;
}
}}
if(legalflag){
for (i=0;i<26;i++)
if(number[i][0]) {printf("%c : %d
",number[i][0],number[i][1]); number[i][0]=0;number[i][1]=0;}
legalflag=0;
}

}
//0x41~5A,0x61~7A;
}

}

//如果输入过程中含有空格,会被当作两组输入处理。

void greatMean(int a[],int n, int k){ int i; for( i=0; i k ) printf( "%d ", a[i] );}