X 我知道了TIPS:左右滑动导航栏可以查看更多栏目
各位前辈:
菜鸟正处于初学阶段,请帮忙写一下程序吧,不胜感谢!
有一辆在高速公路上行驶的汽车,在某一时刻显示的里程数是95859,7小时后,里程表上又出现了一个回文数,求此回文数和汽车时速?(注:高速公路限速60公里以上,汽车的里程表为5位数)
>> 本文固定链接: http://www.vcgood.com/archives/3192
>> 转载请注明: lxnini 2009年05月14日 于 C语言帝国 发表
#include “stdafx.h”#include <stdio.h>int main(){ int a,b,c,d,e; int p=0,q=0,m=0; for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { for(c=0;c<=9;c++) { for(d=0;d<=9;d++) { for(e=0;e<=9;e++) { p=a*10000+b*1000+c*100+d*10+e; q=e*10000+d*1000+c*100+b*10+a; if(p==q && p>=95859) { printf(“%10ld”,p); m++; if(m%10==0) printf(“\n”); } } } } } } printf(“\n”);
}
mhjerry:你好!谢谢你的解答!
还有以下问题想继续请教:
1、#include “stdafx.h”这是一个什么样的头文件。我在Turbo C for windows环境下运行时,编译提示“找不到此头文件”。
2、那些变量是否都应定义成long int型?
3、修改上述问题后,结果显示为从95859到100000间所有的回文数。那要求7小时后的那个回文数和汽车时速又该怎么写程序呢?
静候回复,不胜谢意!
名称的英文全称为:Standard Application Fram Extend
编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include “stdafx.h”前的代码都是预编译的,它跳过#include “stdafx. h”指令,使用projectname.pch编译这条指令之后的所有代码。
因此,所有的MFC实现文件第一条语句都是:#include “stdafx.h”。
——————摘自百度百科
我建议你用visual c++来学习C语言,我们老师就是这样要求我们的。
“我在Turbo C for windows环境下运行时,编译提示“找不到此头文件””那你就直接用 #include <stdio.h> 试试看,也可以到安装目录里的include文件夹里,看有没有stdafx.h文件
无所谓long int 还是 int ,结果一样吧
知道95859后的第一个回文数,95959然后95959-95859=100 不符合
也就是7小时走了100公里,时速100/7=14.2857 km/h
如果取数字96096-95859=210 210/7=30 km/h 不符合
。。。。。。。。
取96369-95859=510 510/7=72.85 km/s 符合条件
。。。。。。。。。。。。。。。。。。。。。
程序实现:
#include “stdafx.h”#include <stdio.h>int main(){ int a,b,c,d,e; int p=0,q=0,m=0,v=0; for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { for(c=0;c<=9;c++) { for(d=0;d<=9;d++) { for(e=0;e<=9;e++) { p=a*10000+b*1000+c*100+d*10+e; q=e*10000+d*1000+c*100+b*10+a; if(p==q && p>=95859) { printf(“%10d”,p); v=(p-95859)/7; /*速度*/ printf(“%10d”,v); m++; /*个数*/ printf(“%10d\n”,m); /*if(m%10==0) printf(“\n”);*/ } } } } } } printf(“\n”);
}鄙人也是初学,可能比较肤浅,不吝赐教!
mhjerry:你好!
程序运算时没有符合以下条件的数呀,运行时没有任何输出结果呀?
if(p==q && p>=95859) { printf(“%10d”,p); v=(p-95859)/7; /*速度*/ printf(“%10d”,v); m++; /*个数*/ printf(“%10d\n”,m); /*if(m%10==0) printf(“\n”);*/ }
}我这有结果呀,你再试试吧,不行,自己敲敲吧,其实很简单!
v=(p-95859)/7; /*速度*/
if(v>60&&v<xx)/*加上这个判别条件就比较完整了*/ printf(“%10d”,v);
=========
开始没弄明白什么叫回文数!
mhjerry、yy_uestc、各位朋友:你们好!:)
上面的问题已解决了。我把前面的变量a,b,c,d,e,p,q都定义成long int型,再加上 if(v>60&&v<xx) 这个条件就可以了。谢谢各位的指教。
下面还有一问题,想向各位请教:
程序填空题:任意输入坐标平面上一点(x,y),求该点到原点(0,0)间的距离。
#include<stdio.h> #include<math.h> #include<malloc.h> typedef struct Node { float x; float y; }Node; main() { Node *p; p=(Node *)malloc(sizeof(p));printf(“input two number:”); scanf(“%f,%f”,p->x,p->y); printf(“%5.1f”,sqrt(p->x*p->x+p->y*p->y)); ; } 除了最后一条语句我用,运行时总是没输出结果,即x,y没接收到值,也就说明动态内存语句错了:p=(Node *)malloc(sizeof(p)); 是这个原因吗?那三个空应该怎么填?
p=(Node *)malloc(sizeof(p));
改为p=(struct Node*)malloc(sizeof(struct Node));
scanf(“%f,%f”,p->x,p->y);
改为scanf(“%f,%f”,&p->x,&p->y);
应该是scanf()少了2个&符号
你必须先 登录才能发表评论。
#include “stdafx.h”
#include <stdio.h>
int main()
{
int a,b,c,d,e;
int p=0,q=0,m=0;
for(a=1;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c=0;c<=9;c++)
{
for(d=0;d<=9;d++)
{
for(e=0;e<=9;e++)
{
p=a*10000+b*1000+c*100+d*10+e;
q=e*10000+d*1000+c*100+b*10+a;
if(p==q && p>=95859)
{
printf(“%10ld”,p);
m++;
if(m%10==0)
printf(“\n”);
}
}
}
}
}
}
printf(“\n”);
}
mhjerry:你好!谢谢你的解答!
还有以下问题想继续请教:
1、#include “stdafx.h”这是一个什么样的头文件。我在Turbo C for windows环境下运行时,编译提示“找不到此头文件”。
2、那些变量是否都应定义成long int型?
3、修改上述问题后,结果显示为从95859到100000间所有的回文数。那要求7小时后的那个回文数和汽车时速又该怎么写程序呢?
静候回复,不胜谢意!
名称的英文全称为:Standard Application Fram Extend
编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include “stdafx.h”前的代码都是预编译的,它跳过#include “stdafx. h”指令,使用projectname.pch编译这条指令之后的所有代码。
因此,所有的MFC实现文件第一条语句都是:#include “stdafx.h”。
——————摘自百度百科
我建议你用visual c++来学习C语言,我们老师就是这样要求我们的。
“我在Turbo C for windows环境下运行时,编译提示“找不到此头文件””那你就直接用 #include <stdio.h> 试试看,也可以到安装目录里的include文件夹里,看有没有stdafx.h文件
无所谓long int 还是 int ,结果一样吧
知道95859后的第一个回文数,95959然后95959-95859=100 不符合
也就是7小时走了100公里,时速100/7=14.2857 km/h
如果取数字96096-95859=210 210/7=30 km/h 不符合
。。。。。。。。
取96369-95859=510 510/7=72.85 km/s 符合条件
。。。。。。。。。。。。。。。。。。。。。
程序实现:
#include “stdafx.h”
#include <stdio.h>
int main()
{
int a,b,c,d,e;
int p=0,q=0,m=0,v=0;
for(a=1;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c=0;c<=9;c++)
{
for(d=0;d<=9;d++)
{
for(e=0;e<=9;e++)
{
p=a*10000+b*1000+c*100+d*10+e;
q=e*10000+d*1000+c*100+b*10+a;
if(p==q && p>=95859)
{
printf(“%10d”,p);
v=(p-95859)/7; /*速度*/
printf(“%10d”,v);
m++; /*个数*/
printf(“%10d\n”,m);
/*if(m%10==0)
printf(“\n”);*/
}
}
}
}
}
}
printf(“\n”);
}
鄙人也是初学,可能比较肤浅,不吝赐教!
mhjerry:你好!
程序运算时没有符合以下条件的数呀,运行时没有任何输出结果呀?
if(p==q && p>=95859)
{ printf(“%10d”,p);
v=(p-95859)/7; /*速度*/
printf(“%10d”,v);
m++; /*个数*/
printf(“%10d\n”,m);
/*if(m%10==0)
printf(“\n”);*/
}
#include “stdafx.h”
#include <stdio.h>
int main()
{
int a,b,c,d,e;
int p=0,q=0,m=0,v=0;
for(a=1;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c=0;c<=9;c++)
{
for(d=0;d<=9;d++)
{
for(e=0;e<=9;e++)
{
p=a*10000+b*1000+c*100+d*10+e;
q=e*10000+d*1000+c*100+b*10+a;
if(p==q && p>=95859)
{
printf(“%10d”,p);
v=(p-95859)/7; /*速度*/
printf(“%10d”,v);
m++; /*个数*/
printf(“%10d\n”,m);
/*if(m%10==0)
printf(“\n”);*/
}
}
}
}
}
}
printf(“\n”);
}
我这有结果呀,你再试试吧,不行,自己敲敲吧,其实很简单!
v=(p-95859)/7; /*速度*/
if(v>60&&v<xx)/*加上这个判别条件就比较完整了*/
printf(“%10d”,v);
=========
开始没弄明白什么叫回文数!
mhjerry、yy_uestc、各位朋友:你们好!:)
上面的问题已解决了。我把前面的变量a,b,c,d,e,p,q都定义成long int型,再加上 if(v>60&&v<xx) 这个条件就可以了。谢谢各位的指教。
下面还有一问题,想向各位请教:
程序填空题:任意输入坐标平面上一点(x,y),求该点到原点(0,0)间的距离。
#include<stdio.h>
#include<math.h>
#include<malloc.h>
typedef struct Node
{ float x;
float y;
}Node;
main()
{ Node *p;
p=(Node *)malloc(sizeof(p));
printf(“input two number:”);
scanf(“%f,%f”,p->x,p->y);
printf(“%5.1f”,sqrt(p->x*p->x+p->y*p->y));
;
}
除了最后一条语句我用,运行时总是没输出结果,即x,y没接收到值,也就说明动态内存语句错了:p=(Node *)malloc(sizeof(p)); 是这个原因吗?那三个空应该怎么填?
p=(Node *)malloc(sizeof(p));
改为p=(struct Node*)malloc(sizeof(struct Node));
scanf(“%f,%f”,p->x,p->y);
改为scanf(“%f,%f”,&p->x,&p->y);
应该是scanf()少了2个&符号