永发信息网

基础编程题

答案:6  悬赏:30  手机版
解决时间 2021-01-26 21:04
基础编程题
最佳答案
LZ想要的是这种答案吧。。。。
//-------------------------------第一题
#include
#include "e:\myc\zylib\zylib.h"
STRING GetString(STRING prompt);
double GetReal(STRING prompt);
int main()
{
double bookprice;
STRING bookname;
bookname=GetString("请输入字符串:");
bookprice=GetReal("请输入实数:");
printf("字符串为:%s\n",bookname);
printf("实数为:%.2f\n",bookprice);
}
STRING GetString(STRING prompt)
{
STRING name;
printf("%s",prompt);
name=GetStringFromKeyboard();
return name;
}
double GetReal(STRING prompt)
{
double price;
printf("%s",prompt);
price=GetRealFromKeyboard();
return price;
}
//-------------------------------------第二题
#include
#include "e:\myc\zylib\zylib.h"
BOOL IsPrime(int n);
int main()
{
int n;
printf("请输入一个整数:");
scanf("%d",&n);
if(n>2)
if(IsPrime(n))printf("%d是素数\n",n);
else printf("%d不是素数\n",n);
else printf("数据非法\n");
return 0;
}
BOOL IsPrime(int n)
{
int i;
for(i=2;i if(n%i= =0) return FALSE;
return TRUE;
}
//--------------------------------第三题
#include
#define TRUE 1
int gcd(int x,int y);
int main()
{
int m,n,max;
printf("请输入两个正整数:");
scanf("%d %d",&m,&n);
max=gcd(m,n);
printf("最大公约数为:%d\n",max);
return 0;
}
int gcd(int x,int y)
{
int r;
while(TRUE)
{
r=x%y;
if(r==0)break;
x=y;
y=r;

}
return y;
}
//--------------------------------第四题
#include
#include "e:\myc\zylib\zylib.h"
typedef enum{sun,mon,tue,thi,wen,fri,sat}WEEKDAY;//定义枚举类型
int GetInteger(STRING prompt);//输入一下整数
int Count(int year,int month);//计算某年某月之前到2007年1月1日的天数
BOOL IsLeapYear(int n);//判断某年是否是闰年
int month_day(int year,int month);//计算某个月的天数
void print(int year,int month,int total);//打印某年某月的日历
void print1(WEEKDAY weekday);//打印某月的第1天
int main()
{
int year,month,total;
year=GetInteger("please input year:");
if(year<2007)
PrintErrorMessage(FALSE,"年份小于2007,错误\n");
month=GetInteger("please input month:");
total=Count(year,month);
print(year,month,total);
}
int GetInteger(STRING prompt)
{
int t;
printf("%s",prompt);
t=GetIntegerFromKeyboard();
return t;
}
int Count(int year,int month)
{
int s,i;
s=0;
for(i=2007;i if(IsLeapYear(i))s+=366;
else s+=365;
for(i=1;i s+=month_day(year,i);
return s;
}
BOOL IsLeapYear(int n)
{
return n%4==0&&n%100!=0||n%400==0;
}
int month_day(int year,int month)
{
int day;
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 9:
case 10:
case 12:day=31;break;
case 2:day=28+IsLeapYear(year);break;
default:day=30;
}
return day;
}
void print(int year,int month,int total)
{
WEEKDAY weekday;
const WEEKDAY first=mon;
int i,day;
printf("%d-%d canlendar\n",year,month);
printf("-----------------------------------\n");
printf(" sun mon tue thi wen fri sat\n");
printf("-----------------------------------\n");
day=month_day(year,month);
for(i=1;i<=day;i++)
{
weekday=(WEEKDAY)((total+i+first-1)%7);
if(i==1)print1(weekday);
else if(weekday==sat)
printf("%4d\n",i);
else printf("%4d",i);
}
printf("\n------------------------------------\n");
}
void print1(WEEKDAY weekday)
{
if(weekday==0)printf("%4d",1);
else if(weekday==1)printf("%8d",1);
else if(weekday==2)printf("%12d",1);
else if(weekday==3)printf("%16d",1);
else if(weekday==4)printf("%20d",1);
else if(weekday==5)printf("%24d",1);
else if(weekday==6)printf("%28d\n",1);
}
//---------------------------------------
上面的一些文件路径你自己改了,唉,其实我自己给你写的那些算法更好,。
全部回答
占个位置
这个不是基础编程!
够基础了,就是多了点,C++也放下一段了。
楼上真有耐心,分给他吧,不容易。
求素数:
myPage是个普通的页面你可以用aspx页面,那么为什么要有这个是以为你他要用Response.AppendHeader("Content-Disposition","attachment;filename="+filename+".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
没有这个是没法弹出保存那个框框的哦
DataGrid 这个参数就是asp.net 1.1框架里面的复杂gird,2.0的改名叫gridview了,要注意下filename是文件保存路径哦。
其实这个是很简单的,那种把gird导出格式为excel的,不过要来高级的自定义的建议你查查自定义输出excel google下很多资料。
回答者: yatasoft - 经理 四级 4-1 17:26
其实两个参数就可以了,Page myPage这个是穿页面过去。 所以这个方法就是公用的方法了。DataGrid ctl 是数据源比如说 绑定好的GridView。
string filename 就是导出是的文件名了。
给你二个我写的,你去比较一下这是用GridVeiw 直接导出到Excel。
===============第一个================
调用:
ExcelOut("application/ms-excel","事例.xls");
方法:
private void ExcelOut(string FillType, string FillName)
{
DataTable dt = new DataTable();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(FillName,System.Text.Encoding.UTF8).ToString());
Response.ContentType = FillType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
//GridView1.Rows[0].RenderControl
//GridView2.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
记得加上这个方法不然会报错
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
=============第二个===============
这种直接用datatable 就可以了。
public void ExportExcel(DataTable dt)
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("ccc_mys.xls", System.Text.Encoding.UTF8).ToString());
Response.ContentType = "application / ms - excel";
string colHeaders = "", ls_item = "";
//定义表对象与行对象,同时用DataSet对其值进行初始化
DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
int i = 0;
int cl = dt.Columns.Count;
//取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
for (i = 0; i < cl; i++)
{
if (i == (cl - 1))//最后一列,加n
{
colHeaders += dt.Columns[i].Caption.ToString() + "\n";
}
else
{
colHeaders += dt.Columns[i].Caption.ToString() + "\t";
}
}
// resp.Write(colHeaders);
Response.Write(colHeaders);
//向HTTP输出流中写入取得的数据信息
//逐行处理数据
foreach (DataRow row in myRow)
{
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
for (i = 0; i < cl; i++)
{
if (i == (cl - 1))//最后一列,加n
{
ls_item += row[i].ToString() + "\n";
}
else
{
ls_item += row[i].ToString() + "\t";
}
}
Response.Write(ls_item);
ls_item = "";
}
//resp.End();
Response.Flush();
Response.Close();
Response.End();
}
myPage是个普通的页面你可以用aspx页面,那么为什么要有这个是以为你他要用Response.AppendHeader("Content-Disposition","attachment;filename="+filename+".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
没有这个是没法弹出保存那个框框的哦
DataGrid 这个参数就是asp.net 1.1框架里面的复杂gird,2.0的改名叫gridview了,要注意下filename是文件保存路径哦。
其实这个是很简单的,那种把gird导出格式为excel的,不过要来高级的自定义的建议你查查自定义输出excel google下很多资料。
回答者: yatasoft - 经理 四级 4-1 17:26
其实两个参数就可以了,Page myPage这个是穿页面过去。 所以这个方法就是公用的方法了。DataGrid ctl 是数据源比如说 绑定好的GridView。
string filename 就是导出是的文件名了。
给你二个我写的,你去比较一下这是用GridVeiw 直接导出到Excel。
===============第一个================
调用:
ExcelOut("application/ms-excel","事例.xls");
方法:
private void ExcelOut(string FillType, string FillName)
{
DataTable dt = new DataTable();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(FillName,System.Text.Encoding.UTF8).ToString());
Response.ContentType = FillType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
//GridView1.Rows[0].RenderControl
//GridView2.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
记得加上这个方法不然会报错
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
=============第二个===============
这种直接用datatable 就可以了。
public void ExportExcel(DataTable dt)
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("ccc_mys.xls", System.Text.Encoding.UTF8).ToString());
Response.ContentType = "application / ms - excel";
string colHeaders = "", ls_item = "";
//定义表对象与行对象,同时用DataSet对其值进行初始化
DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
int i = 0;
int cl = dt.Columns.Count;
//取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
for (i = 0; i < cl; i++)
{
if (i == (cl - 1))//最后一列,加n
{
colHeaders += dt.Columns[i].Caption.ToString() + "\n";
}
else
{
colHeaders += dt.Columns[i].Caption.ToString() + "\t";
}
}
// resp.Write(colHeaders);
Response.Write(colHeaders);
//向HTTP输出流中写入取得的数据信息
//逐行处理数据
foreach (DataRow row in myRow)
{
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
for (i = 0; i < cl; i++)
{
if (i == (cl - 1))//最后一列,加n
{
ls_item += row[i].ToString() + "\n";
}
else
{
ls_item += row[i].ToString() + "\t";
}
}
Response.Write(ls_item);
ls_item = "";
}
//resp.End();
Response.Flush();
Response.Close();
Response.End();
}
写了两个,没测试,自己看着办吧
bool IsPrime(int a)
{
int factor = 2;
if ( a <=2 )
return false;
else
{
while( factor {
if ( a%factor == 0)
return false;
factor ++;
}
}
return true;
}
int gcd (int a, int b);
int gcd (int a, int b)
{
int small = a;
int big = b;
if ( small > big)
{
small = b;
big = a;
}
if ( small == 0)
return small;
else
return gcd(small,big-small);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
西昌市安宁镇可利用垃圾回收站地址有知道的么
水电厂控制台与模拟屏间的距离应按中央控制室
35岁 护肤品
成语冥行盲索的意思是什么啊?有知道释义的请
星巴克(金华万达店)地址好找么,我有些事要过
【灭火器使用步骤】请简述手提式灭火器的灭火
GTA5怎么买房子
昆山市中华园菜市场附近哪里有门面房转让
精功眼镜地址在哪,我要去那里办事,
微呆的咖啡怎么去啊,我要去那办事
成语米粒之珠的意思是什么啊?有知道释义的请
攀山涉水的意思
会见服刑人员?
新青年(咖啡进口食品)地址在什么地方,想过去
患者,男,65岁。右上后牙充填物反复脱落,需
推荐资讯
广州坐飞机到郑州几个小时
做滴滴打车的司机每天跑25单一个月能挣多少钱
军绿色的风衣配什么颜色的丝巾
关于2012新概念作文大赛的报名表
南台村村地址有知道的么?有点事想过去
寻找百名微笑患者活动延长时间了是吗?
芦荟胶越纯越好么? 英国HB的芦荟胶99%,韩
钻石舞蹈工作室地址在什么地方,我要处理点事
求lightroom cc 2017和Photoshop cc 2017 破
广西广电什么时候开盘
成语舍近即远的意思是什么啊?有知道释义的请
苹果6p怎么看内屏坏了
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?