谁能帮我解决C语言程序设计的问题?

1任意输入一个数,判断它是否为素数。 2打印1~1000内所有完数。 3打印100~999之间的水仙花数。 4输入若干字符(以输入!为结束条件)分别统计其中字母、空格、数字和其它字符个数。 5编写九九乘法表。 6求极数e的x次方=1+x+2的阶乘分之x平方+3的阶乘分之x立方+......n的阶乘分之xn次方。(x、n由键盘输入) 7输入4个学生三门课题成绩(二维整型数组)要求:每个学生的平均分、每门课平均分、输出每个学生三门课成绩。
还有个
8用指针方法编写程序,输入三个字符串,按由小到大的顺序输出。要求用函数实现,并用指向一维数组的指针作为函数的参数。

======================
问题补充:还有个
8用指针方法编写程序,输入三个字符串,按由小到大的顺序输出。要求用函数实现,并用指向一维数组的指针作为函数的参数。
======================
这一个在最后,多加些分吧,累死我了:(

给,都已经编译运行确认了:

1.任意输入一个数,判断它是否为素数
#include "stdio.h"
#include "conio.h"
#include "math.h"
int ss(int inputshu)
{
int i,m,t;
m=inputshu;
for(i=2;i<=sqrt(m);i++)
if(m%i==0) {t=0; break;}
if(i>sqrt(m)+1) t=1;
return(t);
}
int main(void)
{
int j;
printf("请输入一个数: \n");
scanf("%d",&j);
if(ss(j)==0) printf("%d不是素数",j);
else printf("%d是素数",j);

getch();
return 1;
}

2.打印1~1000内所有完数
#include<stdio.h> /*头文件*/
#include<conio.h>
#define N 1000 /*搜索范围在1000以内*/

int wanshu(int x) /*判断x是否完数*/
{
int i,sum=0;

for(i=1;i<=x;i++) /*对所有x的因子求和*/
{
if(x%i==0) sum=sum+i;
continue;
}

if(sum==x*2) return(1); /*如果求和结果等于2x则x是完数*/
else return(0); /*否则不是完数*/
} /*完数判断函数结束*/

int print_factor(int x) /*打印结果*/
{
int i,j,res[1000]={0}; /*i,j为循环变量.res数组记录每个因子.*/

for(i=1;i<x;i++) /*将每个非零因子存在数组res[]中*/
{
if(x%i==0) res[i]=i;
continue;
}
printf("%d its factors are: ",x); /*打印提示*/

for(j=0;j<x;j++) /*打印每个因子,以逗号相隔.*/
{
if(res[j]!=0)
{
printf("%d",res[j]);
printf("\,");
}
}
printf("\n");
return(0);
} /*打印函数结束*/

int main(int argc, char *argv[]) /*主函数*/
{
int i; /*循环变量*/

for(i=1;i<=N;i++) /*循环找出小于N的所有完数并输出其因子.*/
{
if(wanshu(i)) print_factor(i);
continue;
}
getch();
return 0;
} /*主函数结束*/

3.打印100~999之间的水仙花数
#include "stdio.h"
#include "conio.h"

int main()
{
int i,j,k,n;
printf("水仙花数是:\n");
for(n=100;n<1000;n++)
{
i=n/100;
j=(n-i*100)/10;
k=n%10;
if(i*i*i+j*j*j+k*k*k==n)

printf("%d\n",n);
}

getch();
return 1;
}

4.输入若干字符(以输入!为结束条件)分别统计其中字母、空格、数字和其它字符个数
#include "stdio.h"
#include "conio.h"
int main(void)
{
int word=0,digit=0,space=0,other=0,i=0;
char *p,s[80];
printf("\nInput a string:");
while ((s[i]=getchar())!='\n') i++;
p=s;
while(*p!='!')
{
if(((*p>='A')&&(*p<='Z'))||((*p>='a')&&(*p<='z')))
word++;
else if(*p==' '||*p==9)
space++;
else if((*p>='0')&&(*p<='9'))
digit++;
else
other++;
p++;
}
printf("字母:%d个,空格:%d个,数字:%d个,其它字符:%d个",word,space,digit,other);

getch();
return 1;
}

5.编写九九乘法表
#include <stdio.h>
#include <conio.h>

int main(){
int t[10][10]={0};
int i,j;

for(i=1;i<10;i++)
for(j=1;j<10;j++)
t[i][j]=i*j;
for(i=1;i<10;i++){
for(j=1;j<10;j++)
if(i>=j)
printf("%d*%d=%2d ",i,j,t[i][j]);
printf("\n");
}

getch();
return 0;
}

6.求极数e的x次方=1+x+2的阶乘分之x平方+3的阶乘分之x立方+......n的阶乘分之xn次方
#include <stdio.h>
#include <conio.h>

int x;
float sum;

long f1(int n)
{
if(n==0) return 1;
else return x*f1(n-1);
}

long f2(int n)
{
if(n==0) return 1;
else return n*f2(n-1);
}

int main()
{
int i,n;

printf("请输入x: ");
scanf("%d",&x);
printf("请输入n: ");
scanf("%d",&n);

for(i=0;i<=n;i++)
sum+=(float)f1(i)/(float)f2(i);
printf("e的%d次方为: %f",x,sum);

getch();
return 1;
}

7.输入4个学生三门课题成绩(二维整型数组)要求:每个学生的平均分、每门课平均分、输出每个学生三门课成绩
#include <stdio.h>
#include <conio.h>

int main()
{
int a[4][3]={0};
int i,j;
int total=0;
float ave;
printf("请输入4个学生三门课题成绩: \n");
for(i=0;i<4;i++)
for(j=0;j<3;j++)
{
printf("第%d个学生第%d门课成绩: ",i+1,j+1);
fflush(stdin);
scanf("%d",&a[i][j]);
}

for(i=0;i<4;i++)
{
printf("第%d个学生三门课成绩为: \n",i+1);
for(j=0;j<3;j++)
{
printf("第%d门课: ",j+1);
printf("%d\n",a[i][j]);
}
printf("\n");
}

printf("\n");

for(i=0;i<4;i++)
{
total=0;
printf("第%d个学生平均分为: ",i+1);
for(j=0;j<3;j++) total+=a[i][j];
ave=total/3.0;

printf("%.1f \n",ave);
}

for(i=0;i<3;i++)
{
total=0;
printf("第%d门课平均分为: ",i+1);
for(j=0;j<4;j++) total+=a[j][i];
ave=total/4.0;

printf("%.1f \n",ave);
}

getch();
return 1;
}

8.用指针方法编写程序,输入三个字符串,按由小到大的顺序输出。要求用函数实现,并用指向一维数组的指针作为函数的参数。

#include<conio.h>
#include<stdio.h>
#include<string.h>

void convert(char *p[3])
{
char *t;
int i,j;

for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(strcmp(p[i],p[j])<0)
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
}

int main()
{
static char *a[3],b[20],c[20],d[20];
int i;
a[0]=b;
a[1]=c;
a[2]=d;

printf("Please input 3 strings: \n");
for(i=0;i <3;i++)
gets(a[i]);

convert(a);

printf("After Sort: \n",a[i]);
for(i=0;i <3;i++)
printf("%s\n",a[i]);

getch();
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-08
这可是学程序最基本的啊,随便一本初级入门的C语言书籍都有吧~
第2个回答  2009-04-08
【例1】判断m是否素数。
N-S流程图:
#include<math.h>
main()
{
int m,i,k;
scanf(“%d”,&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
printf(“%d is a prime number\n”,m);
else
printf(“%d is not a prime number\n”,m);
}

【例2】求100至200间的全部素数。
#include<math.h>
main()
{
int m,i,k,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
{printf(“%d”,m);
n=n+1;}
if(n%n==0)printf(“\n”);
}
printf(“\n”);
}
第3个回答  2009-04-08
1~5都是基本题目你那个做不来还是不要学编程了
第4个回答  2009-04-08
又是作业~~·

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网