21、请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
例如,若二维数组中的数据为
W W W W
S S S S
H H H H
则字符串中的内容应是:WSHWSHWSHWSH。
注意:请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include<stdio.h>
#define M 3
#define N 4
void fun(char (*s)[N],char *b)
{
}
int main()
{
char a[100],w[M][N]={{ 'W', 'W', 'W', 'W'},{'S', 'S', 'S', 'S'},{'H', 'H', 'H', 'H'}};
int i,j;
printf("The matrix:\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%3c",w[i][j]);
printf("\n");
}
fun(w,a);
printf("The A string:\n");
puts(a);
printf("\n ");
return 0;
}
void fun(char (*s)[N],char *b)
{
int i,j,k=0;
for (i=0;i<N;i++)
for (j=0;j<M;j++)
b[k++]=s[j][i];
b[k]='\0';
}
参考程序22、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#define N 10
typedef struct ss /*定义结构体*/
{ char num[10];
int s;
} STU;
fun(STU a[], STU *s)
{
}
int main()
{
STU a[N]={{ "A01",81},{ "A02",89},{ "A03",66},{ "A04",87},{ "A05",77},
{ "A06",90},{ "A07",79},{ "A08",61},{ "A09",80},{ "A10",71}},m;
int i;
printf("*****The original data*****");
for(i=0;i<N;i++)
printf("No=%s Mark=%d\n", a[i].num,a[i].s);
fun(a,&m);
printf("*****THE RESULT*****\n");
printf("The top :%s, %d\n",m.num,m.s);
return 0;
}
fun(STU a[], STU *s)
{
STU m;
m=a[0];
int i;
for (i=1;i<N;i++)
if (m.s<a[i].s) m=a[i];
*s=m;
}
参考程序23、请编写函数fun,其功能是:计算并输出3~n之间所有素数的平方根之和。
例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。
注意:n的值要大于2但不大于100。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <math.h>
double fun(int n)
{
}
int main()
{
int n;
double sum;
printf("Input n=");
scanf("%d",&n);
sum=fun(n);
printf("\nsum=%f\n",sum);
return 0;
}
double fun(int n)
{
int i,j;
double s=0;
for (i=3;i<=n;i+=2)
{
for (j=3;j<=sqrt(i);j+=2)
if (i%j==0) break;
if (j>sqrt(i)) s+=sqrt(i);
}
return s;
}
参考程序24、请编写函数fun,该函数的功能是:判断字符串是否为回文,若是,则函数返回1,主函数中输出"YES",否则返回0,主函数中输出"NO"。
回文是指顺读和倒读都一样的字符串。
例如,字符串LEVEL是回文,而字符串123312就不是回文。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#define N 80
int fun(char *str)
{
}
int main()
{
char s[N];
int i;
printf("Enter a string : ");
gets(s);
printf("\n");
puts(s);
if(fun(s))
printf("YES\n");
else
printf("NO\n");
return 0;
}
int fun(char *str)
{
int i,j;
for (i=0;str[i]!='\0';i++) ;
j=i-1;
i=0;
while (i<j)
{
if (str[i]!=str[j]) break;
i++; j--;
}
if (i<j) return 0;
else return 1;
}
参考程序
25、请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。例如,原来的字符串为"CEAedca",排序后输出为"CedcEAa"。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <string.h>
void fun(char *s,int num)
{
}
int main()
{
char s[10];
printf("输入7个字符的字符串:");
gets(s);
fun(s,7);
printf("\n%s",s);
return 0;
}
void fun(char *s,int num)
{
int i,j;
for (i=1;i<num-2;i++)
for (j=1;j<num-1-i;j++)
if (s[j]<s[j+1])
{
char t;
t=s[j]; s[j]=s[j+1]; s[j+1]=t;
}
}
参考程序
26、请编写函数fun,其功能是:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,形参n中存放得分个数(n>2)。
例如,若输入9.9 8.5 7.6 8.5 9.3 9.5 8.9 7.8 8.6 8.4十个得分,则输出结果为:8.687500。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include <stdio.h>
double fun(double a[ ],int n)
{
}
int main()
{ double b[10], r;
int i;
printf("输入10个数放入b数组中 : ");
for (i=0; i<10; i++)
scanf("%lf",&b[i]);
printf("输入的10个数是 : ");
for (i=0; i<10; i++)
printf("%4.1f ",b[i]);
printf("\n");
r=fun(b,10);
printf("去掉最高分和最低分后的平均分 : %f\n", r );
return 0;
}
double fun(double a[ ],int n)
{
double sum,max,min;
int i;
sum=max=min=a[0];
for (i=1;i<n;i++)
{
sum+=a[i];
if (max<a[i]) max=a[i];
if (min>a[i]) min=a[i];
}
return (sum-max-min)/(n-2);
}
参考程序
27、请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
例如:若输入17 5 则应输出:19,23,29,31,37。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include <stdio.h>
void fun(int m,int k,int xx[])
{
}
int main()
{
int m,n,xx[1000];
printf("\nPlease enter two integers:");
scanf("%d%d",&m,&n);
fun(m,n,xx);
for(m=0;m<n;m++)
printf("%d ",xx[m]);
printf("\n");
return 0;
}
void fun(int m,int k,int xx[])
{
int i,j,s=0;
for(i=m+1;k>0;i++)
{
for(j=2;j<i;j++)
if (i%j==0) break;
if(i==j) { xx[s++]=i; k--;}
}
}
参考程序
28、请编写函数void fun(char *s),它的功能是:把 s 字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。
例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include <stdio.h>
#define N 81
void fun(char *s)
{
}
int main( )
{
char a[N];
printf("Enter a string : ");
gets(a);
printf("The original string is : ");
puts(a);
fun(a);
printf("The string after modified : ");
puts (a);
return 0;
}
void fun(char *s)
{
while(*s)
if (*s=='z'||*s=='Z') {*s-=25; s++;}
else if (*s>='a'&&*s<='y') {*s+=1;s++;}
else if (*s>='A'&&*s<='Y') {*s+=1;s++;}
else s++;
}
参考程序
29、编写函数int fun(int t),它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
例如:当t=1000时,函数值为:1597。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include <stdio.h>
int fun(int t)
{
}
int main()
{
int n;
n=1000;
printf("n=%d,f=%d\n",n,fun(n));
return 0;
}
int fun(int t)
{
int f0=0,f1=1,fn;
fn=f0+f1;
while (fn<=t)
{
f0=f1;
f1=fn;
fn=f0+f1;
}
return fn;
}
参考程序
30、已知结构数组sell中存有10个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。请编制函数fun(),其功能是:按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中。
#include <stdio.h>
#include <string.h>
typedef struct{
char dm[5]; /*产品代码*/
char mc[11]; /*产品名称*/
int dj; /*单价*/
int sl; /*数量*/
long je; /*金额*/
}PRO;
void fun(PRO sell[])
{
}
int main()
{
PRO sell[10]={{"1001","电视机",1000,8},{"1001","电视机",1000,5},
{"1002","洗衣机",850,4},{"1002","洗衣机",850,3},
{"1003","电冰箱",1000,8},{"1003","电冰箱",1000,5},
{"1001","电视机",1250,4},{"1004","空调",2180,5},
{"1002","洗衣机",816,3},{"1001","电视机",1440,5}};
int i;
for (i=0;i<10;i++)
sell[i].je=sell[i].dj*sell[i].sl;
fun(sell);
for(i=0;i<10;i++)
printf("%5s %11s %4d %5d %5ld\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
return 0;
}
void fun(PRO sell[])
{
int i,j;
PRO xy;
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(strcmp(sell[i].mc,sell[j].mc)>0||strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je>sell[j].je)
{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }
}
参考程序
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R