主题:几道有意思的题
yaochunsu
[专家分:0] 发布于 2005-11-13 13:44:00
编一段程序,使用STRING开头的数据区中查找字符串WE,数据区以$符作为结束符号.如查到,给出字符所在的地址;如查不到,给出NOT FOUND提出.
一个班级工45人,在内存中有一个按学号排列的成绩表.试编一个程序,实现按成绩高低并注有学号的有序表,如果有成绩相同的则按学号先后排序.
有一个首地址为MNM的100D字数组,试编写程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零.
回复列表 (共7个回复)
沙发
def [专家分:3380] 发布于 2005-11-13 16:54:00
板凳
小村 [专家分:1800] 发布于 2005-11-14 19:07:00
#include<iostream.h>
#include<string.h>
#include<stdio.h>
int main()
{
char *p="STRINGSDF,GDSWODFKEEWEDLKFEILKJDF.$";//用此字符串来模拟STRING开头的数据区
char *q="WE";
//cout<<strlen(q)<<endl;
int i=0,j=0;//分别记录p和q字符指针所在的位置
while(i<strlen(p)&&j<strlen(q))
{
if(p[i]==q[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
if(j==strlen(q))
cout<<"您所要查找的字符串在第"<<i-strlen(q)+1<<"个字符的位置。\n";
else
cout<<"没有查到您所要查找的字符串。\n";
return 0;
}
3 楼
小村 [专家分:1800] 发布于 2005-11-14 20:29:00
#include<iostream.h>
typedef struct number
{
int i;//存放学号
float result;//存放成绩
}Number[45];
int main()
{
int i,j;
Number Form;//按学号排序的原始成绩表
cout<<"请输入按学号排序的原始成绩表:\n";
for(i=0;i<45;i++)
{
cin>>Form[i].i>>Form[i].result;
}//此循环创建一个按学号排列的成绩表模拟内存中的成绩表
Number Form1;//按成绩排序的新的成绩表
number t;
for(i=0;i<45;i++)
for(j=i;j<45;j++)
{
if(Form[i].result>Form[j].result)
{
t.result=Form[i].result;
t.i=Form[i].i;
Form[i].result=Form[j].result;
Form[i].i=Form[j].i;
Form[j].result=t.result;
Form[j].i=t.i;
}
else if((Form[i].result==Form[j].result)&&(Form[i].i>Form[j].i))
{
t.i=Form[i].i;
Form[i].i=Form[j].i;
Form[j].i=t.i;
}
}
cout<<"按成绩排列的成绩表是:\n\n";
for(i=0;i<45;i++)
{
Form1[i].i=Form[i].i;
Form1[i].result=Form[i].result;
cout<<Form1[i].result<<' '<<Form1[i].i<<endl;
}
}
4 楼
小村 [专家分:1800] 发布于 2005-11-14 20:32:00
呵呵!
后面的不会写了,我也是一个菜鸟!
呵呵
5 楼
yaochunsu [专家分:0] 发布于 2005-11-14 22:22:00
写的不错,说实话,我是个菜鸟,从头开始学汇编的。希望以后多多指导哦.我QQ149460403.嘿嘿,我等着你哦.小村.
6 楼
jinyuxlc [专家分:120] 发布于 2005-12-13 21:34:00
楼主,你要的是哪个格式的程序,是c++??????????????????????????[em10][em10][em10][em10][em10][em10][em10][em10][em10][em10]
7 楼
duorn [专家分:190] 发布于 2005-12-13 23:41:00
这里是不是汇编呀
我来回复