C语言/C++常见习题问答集锦(十七)
程序之美
1、C语言 从键盘任意输入n个整数,然后求出其最大值,最小值,和。
#include<stdio.h>
#define N 10
void main()
{
int a[N],min,max,i,sum=0;
float avg;
printf("输入:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
min=a[0];
max=a[N-1];
for(i=0;i<N;i++)
{
if(a[i]<min)
min=a[i];
if(a[i]>max)
max=a[i];
sum=sum+a[i];
}
avg=(float)sum/N;
printf("最大数:%d,最小数:%d, 和:%d, 平均数:%f\n",max,min,sum,avg);
}
2、c语言 输入n个字母,将其组成字典中最小序列的字符串,并输出。
输入:
a b c d
输出:
abcd
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *a, q;
int i,j,n,k;
printf("输入小写字母个数:\n");
scanf("%d",&n);
getchar();
a = (char*)malloc(n * sizeof(char));
while(i < n){
scanf("%c",&q);
if(q != '\n' && q != ' '){
if(q < 'a' || q > 'z'){
printf("输入错误,请重新输入一个小写字母!\n");
}
else{
a[i] = q;
i++;
}
}
}
printf("\nAfter sorting as follows:\n");
for(i=0;i<n;i++){
k = i;
for(j = i + 1;j<n;j++)
if(a[k]>a[j]) k=j;
if(k!=i){
q=a[k];
a[k]=a[i];
a[i]=q;
}
}
for(i = 0; i < n; i ++)
printf("%c",a[i]);
return 0;
}
3、C语言 100馒头100僧一百馒头一百僧,大僧三个更无争,小僧三个分一个,大僧小僧个几丁?
#include <stdio.h>
int main()
{
int a,b;
for(a=0; a<100; a++)
{
if((100-a)%3==0 && a*3+(100-a)/3==100)
{
printf("%d %d\n", a, 100-a);
break;
}
}
return 0;
}
4、C语言 编写程序,从键盘输入若干个英文字母,并统计各字母出现的次数
#include <stdio.h>
extern int system(const char *);
int main()
{
char index[2][52];//字母-次数关联表
char input[100];
int i,j;
j = 65;
for(i=0;i<26;i++){
index[0][i] = j;//初始化字母表
index[1][i] = 0;//初始化字母出现的次数
j++;
}
j = 97;
for(i=26;i<52;i++){
index[0][i] = j;//初始化字母表
index[1][i] = 0;//初始化字母出现的次数
j++;
}
printf("Please input a word:\n\n");
gets(input);
for(i=0;input[i]!='\0';i++){//遍历输入的数据
for(j=0;j<52;j++){
if(input[i]==index[0][j]){
(index[1][j])++;//记下次数
}
}
}
for(i=0,j=0;i<52;i++){
if(index[1][i]!=0){
if(j%4==0)printf("\n");
j++;
//根据“字母-次数关联表”输出相关信息
printf("%c : %d\t",index[0][i],index[1][i]);
}
}
printf("\n\n");
system("pause");
return 0;
}
5、C语言 用指针作返回值编写函数int *sort(int a, int b, int c),实现求三个数中的最大值、中间值和最小值。在main函数中进行数据输入和输出,数据之间用“,”隔开。输入:三个整数,数据之间用“,”隔开。输出:最大值、中间值和最小值,数据之间用“,”隔开。
#include<stdio.h>
#include <stdlib.h>
int *sort(int a, int b, int c){
int* p = (int*)malloc(3*sizeof(int));
int tmp = 0;
p[0] = a;
p[1] = b;
p[2] = c;
for(int i = 0; i < 3; i++){
for (int j = i + 1; j < 3; j ++)
{
if (p[i] < p[j])
{
tmp = p[j];
p[j] = p[i];
p[i] = tmp;
}
}
}
return p;
}
int main(){
int a,b,c;
printf("请输入三个数\n");
scanf("%d %d %d", &a, &b, &c);
int* p = sort(a, b, c);
printf("max = %d, mid = %d, min = %d\n", p[0], p[1], p[2]);
return 0;
}