【急】!C语言C++编程题,帮忙编一下源程序

1.从键盘上输入若干字符,直到输入’#”结束。统计英文字母、数字、空格、其他字符的个数并输出。

2.从键盘输入任意自然数N(N>10)要求:1.筛选出3~N之间的素数
2.输出素数,每个数占用6宽度,左对齐。

3.有一个分数序列:2/1,3/2,,5/3,13/8,21/13,…从键盘输入自然数N(N>1),计算该数列的前N项之和。

4.请输入3×3的行列式(整数构成),找出其中的最小数值,以及它所在行标和列标。
5.从键盘输入本班同学的程序设计课程分数保存在数组中(人数不超过45人,分数为整数),找出最高分及其所在的下标,并输出。

6.从键盘输入本班同学的程序设计课程分数保存在数组中(人数不超过45人,分数为整数),将百分制成绩转换成等级 ‘A’~’E’(‘A’90及以上,’B’80分数段,’C’70分数段,’D’60分数段,’E’不及格),并输出成绩及其对应的等级数据。

7.从键盘输入5组(每组3个)浮点数作为三条边的长度,若它们能够构成三角形,则计算出三角形的面积,否则给出“不能构成三角形”的提示。

8.计算1-1/2+1/3-1/4+…+1/99-1/100的前N项的值,N从键盘输入,N大于1,小于100。

9.从键盘输入一个字符串存入数组s[80],统计该字符串的长度并将其中所有小写字母改为大写字母,然后再将结果输出。
10.从键盘上输入N个整数保存在数组中,用选择法排序将其按降序排列。

11.从键盘上输入N个整数保存在一个一维数组data中,对输入的任意一个数num,查找数组data中是否有与这个数相等的数。若有,则输出该数在data中的位置,否则输出”NO!”。

12.求100~1000之间有多少个整数,其各位数字之和为5,输出满足条件的所有数据以及总个数。
各位,叔叔阿姨大哥大姐,帮个忙,明天2点之前要用,谢谢了,我在提高点悬赏

1.从键盘上输入若干字符,直到输入’#”结束。统计英文字母、数字、空格、其他字符的个数并输出。
#include "stdio.h"
main()
{
char c;
int letter,number,space,other;
letter=number=space=other=0;
printf("\nPlease input some characters:(end of '#')\n");
while((c=getchar())!='#')
{ if(c>='a' && c<='z') letter++;
else if(c>='A' && c<='Z') letter++;
else if(c>='0' && c<='9') number++;
else if(c==' ') space++;
else other++;
}
printf("\nletter=%d,number=%d,space=%d,other=%d\n",letter,number,space,other);
}
2.从键盘输入任意自然数N(N>10)要求:1.筛选出3~N之间的素数 2.输出素数,每个数占用6宽度,左对齐。
#include "stdio.h"
#include "math.h"
main()
{ int N,i,k,sqr,flag=1;
printf("\nN=");
scanf("%d",&N);
while(N<=10)
{ printf("ERROR,input again:");
scanf("%d",&N);
}
for(k=3;k<=N;k++)
{ sqr=sqrt(N);
for(i=2;i<=sqr;i++)
if(k%i==0)
{ flag=0;
break;
}
if(flag==1)
printf("%-6d",k);
flag=1; }
}
3.有一个分数序列:2/1,3/2,,5/3,13/8,21/13,…从键盘输入自然数N(N>1),计算该数列的前N项之和。
分析:此系列的分子和分母均为斐波那契数列,可设一个整型数组a[M]存该数列:
a[0]=a[1]=1,a[i]=a[i-1]+a[i-2],
再设实型数组b[M]存分数:b[i]=a[i+1]/(float)a[i]
#include "stdio.h"
#define M 100
main()
{ int N,i,a[M];
float b[M],sum=0;
printf("\nN=");
scanf("%d",&N);
a[0]=a[1]=1;
for(i=1;i<=N;i++)
{ a[i+1]=a[i]+a[i-1];
b[i]=a[i+1]/(float)a[i];
sum+=b[i];
}
printf("sum=%.2f",sum);
}
4.请输入3×3的行列式(整数构成),找出其中的最小数值,以及它所在行标和列标。
#include "stdio.h"
main()
{ int a[3][3],i,j,min,l,c;
printf("\na[3][3]=\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
min=a[0][0];l=0;c=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(min>a[i][j])
{ min=a[i][j];
l=i;
c=j;
}
printf("MIN: a[%d][%d]=%d",l,c,min);
}
补充:输入3×3的行列式(整数构成),找出其中的最大值以及它所在的行标和列标
#include "stdio.h"
main()
{ int a[3][3],i,j,max,l,c;
printf("\na[3][3]=\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
max=a[0][0];l=0;c=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(max<a[i][j])
{ max=a[i][j];
l=i;
c=j;
}
printf("MAX: a[%d][%d]=%d",l,c,max);
}
5.从键盘输入本班同学的程序设计课程分数保存在数组中(人数不超过45人,分数为整数),找出最高分及其所在的下标,并输出。
#include "stdio.h"
#define N 45
main()
{ int s[N],k,i;
printf("\nInput scores:");
k=0;
for(i=0;i<N;i++)
{ scanf("%d",&s[i]);
if(s[k]<s[i])
k=i;
}
printf("The highest score is s[%d]=%d",k,s[k]);
}
6.从键盘输入本班同学的程序设计课程分数保存在数组中(人数不超过45人,分数为整数),将百分制成绩转换成等级 ‘A’~’E’(‘A’90及以上,’B’80分数段,’C’70分数段,’D’60分数段,’E’不及格),并输出成绩及其对应的等级数据。
#include "stdio.h"
#define N 45
main()
{ int s[N],i;
char grade[N];
printf("\nScores:");
for(i=0;i<N;i++)
{ scanf("%d",&s[i]);
if(s[i]>=90 && s[i]<=100) grade[i]='A';
else if(s[i]>=80 && s[i]<=89) grade[i]='B';
else if(s[i]>=70 && s[i]<=79) grade[i]='C';
else if(s[i]>=60 && s[i]<=69) grade[i]='D';
else if(s[i]>=0 && s[i]<=59) grade[i]='E';
else grade[i]='w'; /*wrong score*/
}
for(i=0;i<N;i++)
{ if(i%5==0) printf("\n");
printf("%4d:%c",s[i],grade[i]);
}
}
7.从键盘输入5组(每组3个)浮点数作为三条边的长度,若它们能够构成三角形,则计算出三角形的面积,否则给出“不能构成三角形”的提示。
#include "stdio.h"
#include "math.h"
main()
{ float a[5][3],s,area[5];
int i,j;
for(i=0;i<5;i++)
{ printf("\nNo.%d:",i);
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
if((a[i][0]+a[i][1]>a[i][2]) && (a[i][0]+a[i][2]>a[i][1])
&& (a[i][1]+a[i][2]>a[i][0]) && abs(a[i][0]-a[i][1])<a[i][2]
&& abs(a[i][0]-a[i][2])<a[i][1] && abs(a[i][1]-a[i][2])<a[i][0])
{ s=(a[i][0]+a[i][1]+a[i][2])/2;
area[i]=sqrt(s*(s-a[i][0])*(s-a[i][1])*(s-a[i][2]));
printf("AREA[%d]=%f",i,area[i]);
}
else printf("Can't been a triangle!");
}
}
8.计算1-1/2+1/3-1/4+…+1/99-1/100的前N项的值,N从键盘输入,N大于1,小于100。
分析:第i项为:1/i,加减号交替出现,可以用flag存+1和-1来决定加减。
注意i需要转换为float型计算,否则结果不正确?
N为题目给定的数,所以一般不自行改名。?
#include "stdio.h"
main()
{ int N,i,flag=1;
float sum=0;
printf("\nN=");
scanf("%d",&N);
for(i=1;i<=N;i++)
{ sum+=flag/(float)i;
flag=-flag;
}
printf("Sum=%.2f",sum);
}
9.从键盘输入一个字符串存入数组s[80],统计该字符串的长度并将其中所有小写字母改为大写字母,然后再将结果输出。
#include "stdio.h"
main()
{ char s[80];
int len,i;
printf("\nInput a string:");
gets(s);
len=0;
i=0;
while(s[i]!='\0')
{ if(s[i]>='a' && s[i]<='z')
s[i]-=32;
len++;
i++;
}
printf("String:%s,length:%d",s,len);
}
10.从键盘上输入N个整数保存在数组中,用选择法排序将其按降序排列。
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main(int argc, char *argv[])
{ int i,j,key,a[N];
int pos;
printf("Please input ten numbers\n");
for(i=0;i<N;i++) {
printf("a[%d]=",i);
scanf("%d",&a[i]); }
printf("\n");
for(i=0;i<N;i++)
printf("%d;",a[i]);
printf("\n");
for(i=0;i<N-1;i++)
{ for(j=i+1;j<N;j++)
{ key=a[i];
pos = i;
if(key > a[j])
{ key=a[j];
pos = j; } }
if (pos != i)
{ a[j] = a[i];
a[i]=key; } }
for(i=0;i<N;i++)
printf("%d;",a[i]);
printf("\n");
return 0;
}
11.求100~1000之间有多少个整数,其各位数字之和为5,输出满足条件的所有数据以及总个数。

12. 从键盘上输入若干个学生成绩(百分制整数),直到输入-1结束。求平均分并保留一位小数输出
分析:定义score存储学生成绩,由题意知为整型数,范围0-100
定义平均分ave,因为需要小数输出,定义为float型
#include "stdio.h"
main()
{ int score,i=0;
float sum=0,ave;
printf("\nPlease input scores(end of -1):\n");
do
{ scanf("%d",&score);
if(score>=0 && score<=100)
{ sum+=score;
i++; }
while(score!=-1);
ave=sum/i;
printf("\nAverage of %d students is %.1f",i,ave);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-11
我来答第一题吧,,
#include<stdio.h>
main()
{ char s;
int i;
printf("please input char");
while((s=getchar())!='#')
i++;
printf("字符个数为:");
}
第2个回答  2011-06-11
楼主强悍!
第3个回答  2011-06-11
哎哟,这么多题啊,才50分呢,楼主大方点才有人来做啊 ,O(∩_∩)O哈哈~
相似回答