#include"stdio.h" #includeint main() { float a[10],i[10]; //a为实部,i为虚部 int t,s,k; //t为执行的命令,s,k为进行操作的复数 int b,c; float d,e; //d为运算后的复数实部,e为运算后的复数虚部 for(b=0;b<10;b++) { printf("请输入第%d个复数的实部:(回车结束输入)",b+1); scanf("%f",&a[b]); fflush(stdin); //清除输入缓存 printf("请输入第%d个复数的虚部:(回车结束输入)",b+1); scanf("%f",&i[b]); fflush(stdin); } printf("数据输入完毕!\n"); printf("输入的数据如下:\n"); for(b=0;b<10;b++) { printf("第%d个复数:%f+%fi\t",b+1,a[b],i[b]); if((b+1)%3==0) //一行输出三个 printf("\n"); } while(1) { /* while(1) { printf("\n请选择要执行的命令:\n"); printf("1.两个复数相加 2.两个复数相减 3.两个复数相乘\n 4.分离复数实部 5.分离复数虚部 6.输出其中一个复数 7.退出(输入对应的序号回车结束)\n"); scanf("%d",&t); if(t==1||t==2||t==3||t==4||t==5||t==6||t==7) //判断t的值是否符合要求 break; else printf("输入的数据有误!请重新输入\n"); }*/ do { printf("\n请选择要执行的命令:\n"); printf("1.两个复数相加 2.两个复数相减 3.两个复数相乘\n 4.分离复数实部 5.分离复数虚部 6.输出其中一个复数 7.退出(输入对应的序号回车结束)\n"); scanf("%d",&t); fflush(stdin); if(!(t==1||t==2||t==3||t==4||t==5||t==6||t==7)) //判断t的值是否符合要求 printf("输入的数据有误!请重新输入\n"); }while(!(t==1||t==2||t==3||t==4||t==5||t==6||t==7)); if(t==1) { while(1) { printf("请输入相加的第一个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { while(1) { printf("请输入相加的第二个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&k); if(k==1||k==2||k==3||k==4||k==5||k==6||k==7||k==8||k==9||k==10) { d=a[s-1]+a[k-1]; e=i[s-1]+i[k-1]; printf("计算结果为:%f+%fi\n",d,e); break; } else printf("输入的数据有误!请重新输入\n"); } break; } else printf("输入的数据有误!请重新输入\n"); } } if(t==2) { while(1) { printf("请输入相减的第一个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { while(1) { printf("请输入相减的第二个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&k); if(k==1||k==2||k==3||k==4||k==5||k==6||k==7||k==8||k==9||k==10) { d=a[s-1]-a[k-1]; e=i[s-1]-i[k-1]; printf("计算结果为:%f+%fi\n",d,e); break; } else printf("输入的数据有误!请重新输入\n"); } break; } else printf("输入的数据有误!请重新输入\n"); } } if(t==3) { while(1) { printf("请输入相乘的第一个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { while(1) { printf("请输入相乘的第二个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&k); if(k==1||k==2||k==3||k==4||k==5||k==6||k==7||k==8||k==9||k==10) { d=a[s-1]*a[k-1]-i[s-1]*i[k-1]; e=a[s-1]*i[k-1]+i[s-1]*a[k-1]; printf("计算结果为:%f+%fi\n",d,e); break; } else printf("输入的数据有误!请重新输入\n"); } break; } else printf("输入的数据有误!请重新输入\n"); } } if(t==4) { while(1) { printf("请输入需要分离实部的复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { printf("第%d个复数的实部为:%f\n",s,a[s-1]); break; } else printf("输入的数据有误!请重新输入\n"); } } if(t==5) { while(1) { printf("请输入需要分离虚部的复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { printf("第%d个复数的虚部为:%fi\n",s,i[s-1]); break; } else printf("输入的数据有误!请重新输入\n"); } } if(t==6) { while(1) { printf("请输入需要输出的复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { printf("第%d个复数为:%f+%fi\n",s,a[s-1],i[s-1]); break; } else printf("输入的数据有误!请重新输入\n"); } } if(t==7) return 0; printf("按下任意键以继续"); getchar(); getchar(); } }
程序运行结果:
#include"stdio.h" #includeint main() { float a[10],i[10]; //a为实部,i为虚部 int t,s,k; //t为执行的命令,s,k为进行操作的复数 int b,c; float d,e; //d为运算后的复数实部,e为运算后的复数虚部 for(b=0;b<10;b++) { printf("请输入第%d个复数的实部:(回车结束输入)",b+1); scanf("%f",&a[b]); fflush(stdin); //清除输入缓存 printf("请输入第%d个复数的虚部:(回车结束输入)",b+1); scanf("%f",&i[b]); fflush(stdin); } printf("数据输入完毕!\n"); printf("输入的数据如下:\n"); for(b=0;b<10;b++) { printf("第%d个复数:%f+%fi\t",b+1,a[b],i[b]); if((b+1)%3==0) //一行输出三个 printf("\n"); } do { /* while(1) { printf("\n请选择要执行的命令:\n"); printf("1.两个复数相加 2.两个复数相减 3.两个复数相乘\n 4.分离复数实部 5.分离复数虚部 6.输出其中一个复数 7.退出(输入对应的序号回车结束)\n"); scanf("%d",&t); if(t==1||t==2||t==3||t==4||t==5||t==6||t==7) //判断t的值是否符合要求 break; else printf("输入的数据有误!请重新输入\n"); }*/ do { printf("\n请选择要执行的命令:\n"); printf("1.两个复数相加 2.两个复数相减 3.两个复数相乘\n 4.分离复数实部 5.分离复数虚部 6.输出其中一个复数 7.退出(输入对应的序号回车结束)\n"); scanf("%d",&t); fflush(stdin); if(!(t==1||t==2||t==3||t==4||t==5||t==6||t==7)) //判断t的值是否符合要求 { printf("输入的数据有误!请重新输入\n"); getchar(); } }while(!(t==1||t==2||t==3||t==4||t==5||t==6||t==7)); if(t==1) { do { printf("请输入相加的第一个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { do { printf("请输入相加的第二个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&k); if(k==1||k==2||k==3||k==4||k==5||k==6||k==7||k==8||k==9||k==10) { d=a[s-1]+a[k-1]; e=i[s-1]+i[k-1]; printf("计算结果为:%f+%fi\n",d,e); } else printf("输入的数据有误!请重新输入\n"); }while(!(k==1||k==2||k==3||k==4||k==5||k==6||k==7||k==8||k==9||k==10)); } else printf("输入的数据有误!请重新输入\n"); }while(!(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10)); } if(t==2) { do { printf("请输入相减的第一个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { do { printf("请输入相减的第二个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&k); if(k==1||k==2||k==3||k==4||k==5||k==6||k==7||k==8||k==9||k==10) { d=a[s-1]-a[k-1]; e=i[s-1]-i[k-1]; printf("计算结果为:%f+%fi\n",d,e); } else printf("输入的数据有误!请重新输入\n"); }while(!(k==1||k==2||k==3||k==4||k==5||k==6||k==7||k==8||k==9||k==10)); } else printf("输入的数据有误!请重新输入\n"); }while(!(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10)); } if(t==3) { do { printf("请输入相乘的第一个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { do { printf("请输入相乘的第二个复数:(输入1、2……回车结束输入)\n"); scanf("%d",&k); if(k==1||k==2||k==3||k==4||k==5||k==6||k==7||k==8||k==9||k==10) { d=a[s-1]*a[k-1]-i[s-1]*i[k-1]; e=a[s-1]*i[k-1]+i[s-1]*a[k-1]; printf("计算结果为:%f+%fi\n",d,e); } else printf("输入的数据有误!请重新输入\n"); }while(!(k==1||k==2||k==3||k==4||k==5||k==6||k==7||k==8||k==9||k==10)); } else printf("输入的数据有误!请重新输入\n"); }while(!(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10)); } if(t==4) { do { printf("请输入需要分离实部的复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { printf("第%d个复数的实部为:%f\n",s,a[s-1]); } else printf("输入的数据有误!请重新输入\n"); }while(!(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10)); } if(t==5) { do { printf("请输入需要分离虚部的复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { printf("第%d个复数的虚部为:%fi\n",s,i[s-1]); } else printf("输入的数据有误!请重新输入\n"); }while(!(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10)); } if(t==6) { do { printf("请输入需要输出的复数:(输入1、2……回车结束输入)\n"); scanf("%d",&s); if(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10) { printf("第%d个复数为:%f+%fi\n",s,a[s-1],i[s-1]); } else printf("输入的数据有误!请重新输入\n"); }while(!(s==1||s==2||s==3||s==4||s==5||s==6||s==7||s==8||s==9||s==10)); } if(t==7) return 0; printf("按下任意键以继续"); getchar(); getchar(); }while(t==1||t==2||t==3||t==4||t==5||t==6); }
修改后的程序如上,再次修改后将所有的while(1)循环改为了do……while();语句。