求指点如何让打印结果对齐得漂亮些,还有该程序是否还有可以优化的地方,求解。
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
double add(double x,double y){
return x+y;
}
double sub(double x,double y){
return x-y;
}
double mul(double x,double y){
return x*y;
}
double div(double x,double y){
return x/y;
}
double calc(double x,double y,int z){
switch(z){
case 1: return add(x,y); break;
case 2: return sub(x,y); break;
case 3: return mul(x,y); break;
case 4: return div(x,y); break;
}
}
void print(double x,double y,int z){
switch(z){
case 1: printf("%-2.2f+%-2.2f=%6.2f ",x,y,calc(x,y,1)); break;
case 2: printf("%-2.2f-%-2.2f=%6.2f ",x,y,calc(x,y,2)); break;
case 3: printf("%-2.2f*%-2.2f=%6.2f ",x,y,calc(x,y,3)); break;
case 4: printf("%-2.2f/%-2.2f=%6.2f ",x,y,calc(x,y,4)); break;
}
}
int main() {
double a=0.0;
double b=0.0;
int c=0;
int i=1000;
int count=0;
srand((unsigned)time(NULL));
while(i--) {
a=rand()%100+1;
b=rand()%100+1;
c=rand()%4+1;
if(a<b||(int)a%(int)b!=0){//该处把出现负数的情况和除不尽的情况去掉,适合给小学低年级的孩子出题
i++;
continue;
}
print(a,b,c);
count++;
if(count%6==0)
printf("\n");
}
return 0;
}
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
int a, b, c;
srand(time(NULL));
for (int i = 1; i <= 1000; i++)
{
do
{
a = rand() % 100 + 1;
b = rand() % 100 + 1;
c = rand() % 4 + 1;
} while (a < b || a % b != 0);
switch (c)
{
case 1:
printf("%2d + %2d = %d\t", a, b, a + b);
break;
case 2:
printf("%2d - %2d = %d\t", a, b, a - b);
break;
case 3:
printf("%2d * %2d = %d\t", a, b, a * b);
break;
case 4:
printf("%2d / %2d = %d\t", a, b, a / b);
break;
default:
break;
}
if (i % 5 == 0)
printf("\n");
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
double add(double x, double y)
{
return x + y;
}
double sub(double x, double y)
{
return x - y;
}
double mul(double x, double y)
{
return x * y;
}
double div(double x, double y)
{
return x / y;
}
double calc(double x, double y, int z)
{
switch (z)
{
case 1:
return add(x, y);
break;
case 2:
return sub(x, y);
break;
case 3:
return mul(x, y);
break;
case 4:
return div(x, y);
break;
}
}
void print(double x, double y, int z)
{
switch (z)
{
case 1:
printf("%.2f + %.2f = %.2f\t", x, y, calc(x, y, 1));
break;
case 2:
printf("%.2f - %.2f = %.2f\t", x, y, calc(x, y, 2));
break;
case 3:
printf("%.2f * %.2f = %.2f\t", x, y, calc(x, y, 3));
break;
case 4:
printf("%.2f / %.2f = %.2f\t", x, y, calc(x, y, 4));
break;
}
}
int main()
{
double a = 0.0;
double b = 0.0;
int c = 0;
int i = 100;
int count = 0;
srand((unsigned)time(NULL));
while (i--)
{
a = rand() % 100 + 1;
b = rand() % 100 + 1;
c = rand() % 4 + 1;
if (a < b || (int)a % (int)b != 0)
{ //该处把出现负数的情况和除不尽的情况去掉,适合给小学低年级的孩子出题
i++;
continue;
}
print(a, b, c);
count++;
if (count % 6 == 0)
printf("\n");
}
return 0;
}
如果对你有帮助,请点个采纳支持一下,谢谢!
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
double add(double x,double y) {
return x+y;
}
double sub(double x,double y) {
return x-y;
}
double mul(double x,double y) {
return x*y;
}
double die(double x,double y) {
return x/y;
}
double calc(double x,double y,int z) {
switch(z) {
case 1:
return add(x,y);
break;
case 2:
return sub(x,y);
break;
case 3:
return mul(x,y);
break;
case 4:
return die(x,y);
break;
}
}
void print(double x, double y, int z)
{
switch (z)
{
case 1:
printf("%-2.0f + %-2.0f = %-4.0f\t", x, y, calc(x, y, 1));
break;
case 2:
printf("%-2.0f - %-2.0f = %-4.0f\t", x, y, calc(x, y, 2));
break;
case 3:
printf("%-2.0f x %-2.0f = %-4.0f\t", x, y, calc(x, y, 3));
break;
case 4:
printf("%-2.0f ÷%-2.0f = %-4.0f\t", x, y, calc(x, y, 4));
break;
}
}
int main() {
double a=0.0;
double b=0.0;
int c=0;
int i=100;
int count=0;
srand((unsigned)time(NULL));
while(i--) {
a=rand()%100+1;
b=rand()%100+1;
c=rand()%4+1;
if(a<b||(int)a%(int)b!=0) { //该处把出现负数的情况和除不尽的情况去掉,适合给小学低年级的孩子出题
i++;
continue;
}
count++;
print(a,b,c);
if(count%5==0)
printf("\n");
}
return 0;
}