C语言问题 怎么做?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言问题 怎么做?相关的知识,希望对你有一定的参考价值。
(2) 输入10个数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:
1. 输入10个数;
2. 进行处理;
3. 输出10个数。
(3)求某班某门课的平均成绩,统计超过平均值的人数。
编写三个函数:
1.输入成绩:函数中处理用“下标法”引用数组元素;
2. 求平均成绩:函数中处理用“数组名+位移”引用数组元素;
3. 求统计超过平均值的人数:函数处理用“指针法”引用数组元素;
(学生成绩:65, 90, 80, 75, 82, 77, 92, 86, 97, 79)
//问题2
//
#include <stdio.h>
void input_ten_numbers( int num[] );
void deal_numbers( int num[] );
void output_ten_numbers( int num[] );
int main(void)
int num[10];
input_ten_numbers( num );
deal_numbers( num );
output_ten_numbers( num );
return 0;
void input_ten_numbers( int num[] )
printf("请输入10个数:\n");
for( int i = 0; i < 10; i++ )
scanf( "%d", &num[i]);
void deal_numbers( int num[] )
int max_location = 0;
int min_location = 0;
int temp;
int i;
for( i = 0; i < 10; i++ )
if ( num[i] < num[min_location] )
min_location = i;
temp = num[0];
num[0] = num[min_location];
num[min_location] = temp;
for( i = 0; i < 10; i++ )
if ( num[i] > num[max_location] )
max_location = i;
temp = num[9];
num[9] = num[max_location];
num[max_location] = temp;
void output_ten_numbers( int num[] )
printf("处理后数据:\n");
for( int i = 0; i < 10; i++ )
printf( "%d\n", num[i]);
///////////////////////
///问题3
///
#include <stdio.h>
void input_score( int score[], int number );
float score_average( int score[], int number );
int count( int score[], int number );
int main(void)
int score[100]; //保存分数的数组
int number = 10; //人数
input_score( score, number );
printf( "平均分数:%f\n", score_average(score, number) );
printf( "超过平均分数的人数:%d\n", count(score, number) );
return 0;
void input_score( int score[], int number )
printf("请输入%d个分数:\n", number);
for( int i = 0; i < number; i++ )
scanf( "%d", &score[i]);
float score_average( int score[], int number )
int total = 0;
for( int i = 0; i < number; i++ )
total += *(score+i);
return (float)total/number;
int count( int score[], int number )
int cnt = 0;
int *p = score;
float ave = score_average( score, number );
for( int i = 0; i < number; i++ )
if(*(p++) > ave)
cnt++;
return cnt;
参考技术A 件 要改掉,否则减法得-1要处理.
出题涵数部分要进一步完善,使题目有深浅.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
double f(double a, double b, int task)
double x;
if (task > 4 ) task = rand()%5;
if (task < 1) task = 1;
if (task == 1) printf("How much is %.0lf + %.0lf?\n",a,b);
if (task == 2) printf("How much is %.0lf - %.0lf?\n",a,b);
if (task == 3) printf("How much is %.0lf * %.0lf?\n",a,b);
if (task == 4) printf("How much is %.0lf / %.0lf?\n",a,b);
switch(task)
case 1: x = a + b; return x; break;
case 2: x = a - b; return x; break;
case 3: x = a * b; return x; break;
case 4: x = a / b; return x; break;
default: x = a + b; return x;
int main()
int n=0,a,b,task;
double x;
srand(time(NULL));
printf("chose task 1,2,3,4,5:\n");
scanf("%d",&task);
a=rand()%9+1,b=rand()%9+1;
while( n!=-1 )
x = f(a,b,task);
printf("-1 end\n");
// printf("输入答案(-1结束): ");
scanf("%d",&n);
fflush(stdin);
if( fabs (n - x) < 0.001 )
printf("Very good!\n\n");
a=rand()%9+1;
b=rand()%9+1;
else
if(n!=-1)
printf("NO,Please try again!\n\n");
system("pause");
return 0;
这道c语言怎么做
Description
给定一段文章,请输出每个字母出现的次数。
Input
输入多组数据,长度小于200。在文章中除最后一个字符外,只有小写字母、空格和换行符,没有另外的标点、数字和大写字母等。该文章以’#’结尾。
Ouput
输出格式为“C A”,C为’a’..’z’中的字母,A为出现次数,C和A之间空一格。
Sample Input
here is the input this is the article#
Sample Output
a 1
b 0
c 1
d 0
e 5
f 0
g 0
h 4
i 5
j 0
k 0
l 1
m 0
n 1
o 0
p 1
q 0
r 2
s 3
t 5
u 1
v 0
w 0
x 0
y 0
z 0
我写的是
#include <stdio.h>
int main()
char a[201],ch;
int num[26]=0,i;
gets(a);
for(i=0;a[i]!='#';i++)
if(a[i]>='a'&&a[i]<='z')
num[a[i]-'a']++;
for(ch='a';ch<='z';ch++)
printf("%c %d\n",ch,num[a[i]-'a']);
return 0;
哪里错了啊 编译不行啊
已经测试通过 如果有问题请追问 参考技术A printf("%c %d\n",ch,num[a[i]-'a']);错了,改成printf("%c %d\n",ch,num[ch-'a']);便可。
以上是关于C语言问题 怎么做?的主要内容,如果未能解决你的问题,请参考以下文章