感谢所有帮助过我的人 继续上传我的C语言作业请大家批评
从键盘读入5个成绩到一个数组中,求其中的最大值,最小值和平均成绩。在屏幕上显示输入成绩的提示信息,用键盘输入一个成绩,接着提示输入下一个,直到结束。
程序代码:
#include<stdio.h>
#include<math.h>
#define N 5
#ifndef FSMLALL
#define FSMLALL 0.000001
#endif
int main(void)
{
int i = 0;
float scores[N] = {0.0};
float max = 0.0;
float min = 3e38;
float average = 0.0;
printf("Please input %d score(s):\n",N);
for (i=0; i<N; i++)
{
printf("Please input No.%d score(s):",i+1);
scanf("%f",(scores+i));
if ((scores[i]-max)>FSMLALL) /* scores[i] > max */
{
max = scores[i];
}
if ((min-scores[i])>FSMLALL) /* min < scores[i] */
{
min = scores[i];
}
average += scores[i];
}
average /= N;
/* sample may be wrong. */
printf("Max is %f,Min is %f,Average is %f",max,min,average);
return 0;
}
找出数组中的最小数和次小数,并把最小数和a[0]中的数对调、次小数和a[1]中的数对调,其余数据位置不变。
例如,程序运行时若输入:2 4 6 11 3 9 7 0 5 8,则输出:0 2 6 11 3 9 7 4 5 8。
程序代码:
#include<stdio.h>
#define N 10
int main(void)
{
int a[N] = {0};
int i = 0;
int i_min = 0;
for (i=0; i<N; i++)
{
scanf("%d",a+i);
/* 编写程序,实现功能 */
if (a[i] < a[i_min])
{
i_min = i;
}
}
if (0 != i_min)
{
/* a trick to exchange 2 int */
a[0] ^= a[i_min];
a[i_min] ^= a[0];
a[0] ^= a[i_min];
}
/* if there are 2 min nums a[0] and a[1] will be equal */
i_min = 1;
for (i=1; i<N; i++)
{
if (a[i] < a[i_min])
{
i_min = i;
}
}
if (1 != i_min)
{
a[1] ^= a[i_min];
a[i_min] ^= a[1];
a[1] ^= a[i_min];
}
for (i=0; i<N; i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
编写程序从键盘上输入一个字符串和一个字符,统计所指定字符的个数。
例如:从键盘输入字符串为"abaaAAbcaaaca",指定字符为'a',则在屏幕上输出结果是7。
程序代码:
#include<stdio.h>
#include<string.h>
#define N 200
int main(void)
{
char a[N] = {'\0'};
char b = '\0';
int num = 0;
int i = 0;
printf("Please input a string,max length is %d:",N);
gets(a);
printf("Please enter a character:");
b=getchar();
/* 编写程序,实现功能 */
for (; i<N&&a[i]!='0'; i++)
{
if (a[i] == b)
{
num++;
}
}
printf("The result is %d\n",num);
return 0;
}
某个单位要传递机密数据,数据是10位以内的整数(从键盘输入)。在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用该和除以10的余数代替该数字。在屏幕上显示加密后的数字。
例如:输入数据 327895123,
显示结果为 : 872340678。
程序代码:
#include<stdio.h>
#define N 10
int main(void)
{
char a[N] = {'\0'};
int i = 0;
scanf("%s",a);
for (; i<10&&a[i]!='\0'; i++)
{
if (a[i]<'0'||a[i]>'9')
{
printf("\nInput may be wrong.\n");
return -1;
}
/*
a[i] -= '0';
a[i] += 5;
a[i] %= 10;
a[i] += '0';
*/
putchar((((a[i]-'0')+5)%10)+'0');
}
return 0;
}










