| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 904 人关注过本帖
标题:C程序如何能实现下面的功能?
只看楼主 加入收藏
ckchka1985
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-6-7
收藏
 问题点数:0 回复次数:6 
C程序如何能实现下面的功能?
我是一个C程序初学者,有问题了!请高手帮忙下啊?

我是一个C程序初学者,有问题了!请高手帮下忙啊?
摆脱了,希望能够得到高手的帮助啊?有可能的话发送到邮箱啊!感谢!
chka1985@yahoo.com.cn
课题一:字符串处理
用一个字符数组保存着一个英文句子,要求
(1) 删除该英文句子的前导空格,后导空格.并删除句子中多余的空格(单词之间只留一个空格);
(2) 统计该句子中,单词出现的频率;

课题二:建立N阶方阵,N的值是多少,每行上打印几个数:
螺旋方阵,当N的值是4时,方阵如下图:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

课题三:蛇形方阵,当N的值是4时,方阵如下图:
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16

课题四:字母的集中排列方法,既从键盘上随机的输入一个字符串,要求串中各个字符按照ASCII值递增1的顺序排列,然后根据键盘上输入的数字进行输出选择。若从键盘上输入:ABC(回车),则
Enter choice:1
Result:CBA

Enter choice:2
Result:ABCCBA

Enter choice:3
Result:ACBBCA

Enter choice:4 注:从键盘上输入一个数字N,按照ASCII值顺序输入串中最后一个字符后的N个字符
Enter Number:3
Result:DEF

Enter choice:5
Result:65+66+67=198 注:输出串中的各个字符的ASCII值的和

Enter choice:6 注:输入1~5之外的其他数字都做这样的选择。
Your choice is invalid
搜索更多相关主题的帖子: 如何 英文句子 blank border 
2006-06-07 17:40
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

第4题的choice 3没讲清楚,请问:如果ABCD那么输出什么?


对不礼貌的女生收钱......
2006-06-07 17:51
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

3,蛇型矩阵
#include<stdio.h>
#define max_length 16
main()
{
int a[16][16]={0};
int i,j,k,p=2,q,n=16;/*i,j,k用来循环,n用来存要输出放阵的长度*/
int flag=0;
while(n>15)
{
printf("Please input the length of the phalanx:");
scanf("%d",&n);
}
a[1][1]=1;
j=1;
flag=0;
for(i=3;i<n+2;i++)
{
q=p;
if(j==1&&flag==0)
for(;j<i;j++)
{
for(k=1;k<i;k++)
{
if(j+k==i)
a[j][k]=p++;
if(p-q==i-1)
{
flag=1;
goto NEXT;
}
}
if(flag==2)
NEXT:{break;}
}
q=p;
i++;
if(k==1&&flag==1)
for(;k<i;k++)
{
for(j=1;j<i;j++)
{
if(j+k==i)
a[j][k]=p++;
if(p-q==i-1)
{
flag=0;
goto NEXT2;
}
if(flag==2)
NEXT2:{break;}
}
}
}
for(j=1;j<n+1;j++)
for(k=1;k<n+1;k++)
if(a[j][k]==0)
a[j][k]=(n*n+1)-a[n-j+1][n-k+1];
for(j=1;j<n+1;j++)
{
for(k=1;k<n+1;k++)
{
printf("%5d",a[j][k]);
}
printf("\n\n");
}
getch();
}

第二题论坛上有,我看过。你可以搜下。
第一题(1):
#include "stdio.h"
#include "conio.h"
typedef struct NODE
{
char ch;
struct NODE *rlink,*llink;
}node;
main()
{
node *head=NULL,*p=NULL,*q=NULL;
char *s=" I like programming";
int i=0;
head=(node *)malloc(sizeof(node));
head->ch=s[i++];
head->rlink=head->llink=NULL;
q=head;
while(s[i])
{
p=(node *)malloc(sizeof(node));
p->rlink=NULL;
q->rlink=p;
p->llink=q;
p->ch=s[i++];
q=p;
}
q=head;
while(q)
{
if(q->ch==' ')
{
if(q==head)
{
q=q->rlink;
free(head);
head=q;
q->llink=NULL;
}
else
if(q->rlink->ch==' '||q->llink->ch==' ')
{
q->rlink->llink=q->llink;
q->llink->rlink=q->rlink;
p=q;
q=q->rlink;
free(p);
}
else q=q->rlink;
}
else
q=q->rlink;
}
while(head)
{
printf("%c",head->ch);
head=head->rlink;
}
getch();
}
1(2)查了下函数库,用memccpy来做,没动手。
第4题:
#include <stdio.h>
#include <conio.h>
#include <string.h>
int check(char *s);
void PrintStrrev(char *p);
int main()
{
char s[20];
int choice,num,i,sum=0;
do{
puts("enter the string:");
gets(s);
}while(check(s));
puts("Enter choice:");
scanf("%d",&choice);

switch(choice)
{
case 1:
printf("Result:");
PrintStrrev(s);
break;
case 2:
printf("Result:");
printf("%s",s);
PrintStrrev(s);
break;
case 4:
puts("Enter Number:");
scanf("%d",&num);
printf("Result:");
for(i=1;i<=num;putchar(s[strlen(s)-1]+i),i++);
break;
case 5:
printf("Result:");
for(i=0;i<strlen(s);sum+=s[i],i++)
{
if(i<strlen(s)-1)
printf("%d+",s[i]);
else printf("%d=",s[i]);
}
printf("%d",sum);
break;
default:puts("Your choice is invalid");

}

getch();
}
int check(char *s)
{
int i=0,judge;
for(;s[i+1];i++)
{
judge=s[i]+1==s[i+1]?0:1;
if(judge)
return 1;
}
return 0;
}
void PrintStrrev(char *p)
{
if(*p)
{
PrintStrrev(p+1);
putchar(*p);
}
}
因choice 3没讲清楚,按dafault处理。


对不礼貌的女生收钱......
2006-06-07 19:53
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

[题目]输入自然数n,就输出蛇形矩阵。
如 输入5,则输出:
1 2 6 7 15
3 5 8 14 16
4 9 13 17 22
10 12 18 21 23
11 19 20 24 25

#include<stdio.h>
#include<stdlib.h>
int*snake_fill(int N)
{ int i,j,m,e=0;
int *s;
s=(int*)malloc(N*N*sizeof(int));
for(m=0;m<N;m++)
for(j=m,i=0;i<=m;i++,j--)
s[i*N+j]=++e;//填充左上方
for(m=1;m<N;m++)
for(j=N-1,i=m;i<N;i++,j--)
s[i*N+j]=N*N+1-s[(N-1-i)*N+(N-1-j)];
//利用中心对称互补性质,填充其他元素
for(i=0;i<N;i++)
for(j=0;j<i;j++)
if((j+i)%2==0)//转置部分元素,以便形成蛇形
{e=s[i*N+j];s[i*N+j]=s[j*N+i];s[j*N+i]=e;}
return s;
}
main()
{
int i,j,n,*p;
printf("snake matrix order = ");
scanf("%d",&n);
p=snake_fill(n);
for(i=0;i<n;i++,printf("\n"))
for(j=0;j<n;j++)
printf("%-4d",*p++);
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-08 06:13
ckchka1985
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-6-7
收藏
得分:0 
楼上的哥哥,小弟不胜感激;但不知道哥哥能不能给小弟留个QQ,你可以发送到我的电子邮箱里啊!chka1985@yahoo.com.cn
2006-06-09 17:46
likk
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2005-9-15
收藏
得分:0 
请问?
如果我们输入的N值为奇数那怎么办??

2006-06-09 19:23
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(ckchka1985)楼上的哥哥,小弟不胜感激;但不知...
从不QQ,故无QQ号,希鉴谅。此坛有短信功能。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-10 03:27
快速回复:C程序如何能实现下面的功能?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024505 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved