c语言作业是在做不下去了。。。

因为明天就要交,可是我才看到一半,这些数组的作业实在是不会做。。。

哪个高手帮忙作下?
实在是没有分了。。刚才问了几个问题都交出去了。。
谢谢大家了。。。

综合练习
(1) 以下程序统计从终端输入的字符中每个大写字母的个数,用#号作为输入结束标志,请完成程序并上机调试运行。
#include <stdio.h>
#include <ctype.h>
main()
{ int num[26],i;
char c;
for(i=0;i<26;i++) num[i]=0;
while (_____________!=’#’) /*统计从终端输入的大写字母的个数*/
if(isupper(c)) num[c-65]+=1;
for(i=0;i<26;i++) /*输出大写字母和该字母的个数*/
if( num[i]) printf(“%c:%d\n”,i_________,num[i]);
}
(2) 以下程序用两种方法输出字符串。请完成程序并上机调试运行。
main()
{ int i;
char string[]=” I love China!”;
printf(“________”,string);
printf(“---------------\n”);
___________;
while (string[i])
{ printf(“%c”,string[i]);
____________;
}
printf(“\n”);
}
(3) 下列程序将一维数组的数据按从大到小排序输出。请完成程序并上机调试运行。
main()
{ int i,j,temp;
int a[8]={50,80,70,45,90,65,78,95};
for(_________;i<7;i++)
for(_________;j<8;j++)
if(___________)
{ temp=a[i];___________;a[j]=temp;}
for(i=0;i<8;i++)
printf(“%d,”a[i]);
}
3、改错题:
以下程序的功能是:从键盘上输入10个整数,并利用冒泡法为其按从小到大的顺序排列。程序中有几处错误,试找出他们后加以修改,并上机验证修改结果。
main()
{ int a[10],i,j,temp;
printf(“\n Input 10 integer numbers:”);
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
for(i=0;i<8;i++)
for(j=0;j<10-i;j++)
if(a[j]<a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
printf(“\n”);
for(i=0;i<10;i++)
printf(“%d”, a[i]);
}
3、编写程序
(1)、青年歌手参加歌曲大奖赛,有10个评委对她进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。
(2)、在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次序(升序)排列。

在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。

*问题分析与算法设计
这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。
*程序说明与注释
#include<stdio.h>
int main()
{
int integer,i,max,min,sum;
max=-32768; /*先假设当前的最大值max为C语言整型数的最小值*/
min=32767; /*先假设当前的最小值min为C语言整型数的最大值*/
sum=0; /*将求累加和变量的初值置为0*/
for(i=1;i<=10;i++)
{
printf("Input number %d=",i);
scanf("%d",&integer); /*输入评委的评分*/
sum+=integer; /*计算总分*/
if(integer>max)max=integer; /*通过比较筛选出其中的最高分*/
if(integer<min)min=integer; /*通过比较筛选出其中的最低分*/
}
printf("Canceled max score:%d\nCanceled min score:%d\n",max,min);
printf("Average score:%d\n",(sum-max-min)/8); /*输出结果*/
}

*运行结果
Input number1=90
Input number2=91
Input number3=93
Input number4=94
Input number5=90
Input number6=99
Input number7=97
Input number8=92
Input number9=91
Input number10=95
Canceled max score:99
Canceled min score:90
Average score:92
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-12-11
(1)第一个空: (n=getchar()) 第二个空: +65
(2)第一个空:%s 第二个空:i=0 第三个空:i++
(3) 第一个空:i=0; 第二个空:j=i+1;第三个空:a[i]<a[j];第四个空:a[i]=a[j];
改错题:
main()
{ int a[10],i,j,temp;
printf(“\n Input 10 integer numbers:”);
for(i=0;i<10;i++)
scanf(“%d",&a[i]);
for(i=0;i<=8;i++)
for(j=0;j<10-i;j++)
if(a[j]<a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
printf(“\n”);
for(i=0;i<10;i++)
printf(“%d”,a[i]);
}