读书人

C++程序有关问题!帮帮小弟我这个初学

发布时间: 2012-02-14 19:19:19 作者: rapoo

C++程序问题!帮帮我这个菜鸟!谢谢!
我刚学C语言,老师布置了2题作业我自己写出来的,但是有错误,我不知道错在那里了,帮我指出来好吗?谢谢了!

题目:
1.编写一个程序,用于接受用户输入的两个数(可以是整数也可以是小数),对其执行加,减,乘,除及求余运算,然后以格式化方式显示结果,要求小数点保留两位有效数字!

我写的代码:#include <stdio.h>
void main()
{
float a,b;
float q,w,e,r;
int t;
printf( "请输入两个数字: ");
scanf( "%f%f ",&a,&b);
q=a+b;
w=a-b;
e=a*b;
r=a/b;
t=a%b;
printf( "和为%7.2f\n ",q);
printf( "差为%7.2f\n ",w);
printf( "积为%7.2f\n ",e);
printf( "商为%7.2f\n ",r);
printf( "余为%7d\n ",t);
}

2,编写一个程序要求输入一个数,输出该数分别与1~10的数相乘的结果。输出结果如图:
1*1=1
1*2=2,2*2=4
1*3=3,2*3=6,3*3=9
.........
...........
1*10=10,2*10=20,......10*10=100。

我写的代码:
#include <stdio.h>
void main()
{
float a;
double z[10];
printf( "请输入一个字: ");
scanf( "%f ",&a ");
z[1]=a*1,z[2]=a*2,z[3]=a*3,z[4]=a*4,z[5]=a*5,z[6]=a*6,z[7]=a*7,z[8]=a*8,z[9]=a*9,z[10]=a*10;
printf( "a*1=z[1]\n ",a,z[1]);
printf( "a*1=z[1],a*2=z[2]\n ",a,z[1],z[2]);
printf( "a*1=z[1],a*2=z[2]\n,a*3=z[3]\n ",a,z[1],z[2],z[3]);
printf( "a*1=z[1],a*2=z[2],a*3=z[3],a*4=z[4]\n ",a,z[1],z[2],z[3],z[4]);
printf( "a*1=z[1],a*2=z[2],a*3=z[3],a*4=z[4],a*5=z[5]\n ",a,z[1],z[2],z[3],z[4],z[5]);
printf( "a*1=z[1],a*2=z[2],a*3=z[3],a*4=z[4],a*5=z[5],a*6=z[6]\n ",a,z[1],z[2],z[3],z[4],z[5],z[6]);
printf( "a*1=z[1],a*2=z[2],a*3=z[3],a*4=z[4],a*5=z[5],a*6=z[6],a*7=z[7]\n ",a,z[1],z[2],z[3],z[4],z[5],z[6],z[7]);
printf( "a*1=z[1],a*2=z[2],a*3=z[3],a*4=z[4],a*5=z[5],a*6=z[6],a*7=z[7],a*8=z[8]\n ",a,z[1],z[2],z[3],z[4],z[5],z[6],z[7],z[8]);
printf( "a*1=z[1],a*2=z[2],a*3=z[3],a*4=z[4],a*5=z[5],a*6=z[6],a*7=z[7],a*8=z[8],a*9=z[9]\n ",a,z[1],z[2],z[3],z[4],z[5],z[6],z[7],z[8],z[9]);
printf( "a*1=z[1],a*2=z[2],a*3=z[3],a*4=z[4],a*5=z[5],a*6=z[6],a*7=z[7],a*8=z[8],a*9=z[9],a*10=z[10]\n ",a,z[1],z[2],z[3],z[4],z[5],z[6],z[7],z[8],z[9],z[10]);
}


[解决办法]
第一题 改为这样
#include <stdio.h>
void main()
{
float a,b;
float q,w,e,r;
int t;
printf( "请输入两个数字: ");
scanf( "%f%f ",&a,&b);
q=a+b;
w=a-b;
e=a*b;
r=a/b;
t= ((int)a%(int)b);
printf( "和为%7.2f\n ",q);
printf( "差为%7.2f\n ",w);
printf( "积为%7.2f\n ",e);
printf( "商为%7.2f\n ",r);
printf( "余为%7d\n ",t);
}
[解决办法]
第二题 这一行有误
scanf( "%f ",&a ");

修改为
scanf( "%f ",&a);
[解决办法]
同时 double z[10];应修改为
double z[11];

因为你的数组下标从1开始,就是使用1-10这10个单元
如果数组下标从0开始就是使用0-9这10个单元,这种情况你可以用double z[10]
C语言中数组下标从0开始

读书人网 >C++

热点推荐