广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 14330 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
allenmail 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
文章表情[C/C++][精华] 怎么写一个用高斯消去法求方程式解的程式
我想应该是用阵列去写吧
或者是有其他方法
可以请大大交我一下 ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



献花 x0 回到顶端 [楼 主] From:台湾教育部 | Posted:2005-05-28 13:45 |
allenmail 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
[补充说明]已解决 终于做出来了
#include <stdio.h>
main(void) {
int t1=0,t2=0,t3=0,j;
double arg[3][4] = {{1,2,1,4},{2,1,-1,-1},{-1,1,2,3}};
double temp[3],temp2[3];
if(arg[0][0]==0){
    if(arg[1][0]!=0){
    for (j=0;j<4;j++) {
    temp2[j]=arg[1][j];
    arg[1][j]=arg[0][j];
    arg[0][j]=temp2[j];
    }
    }
    if(arg[2][0]!=0){
    for (j=0;j<4;j++) {
    temp2[j]=arg[2][j];
    arg[2][j]=arg[0][j];
    arg[0][j]=temp2[j];
    }
    }
    else{
        t1=1;
    }
}
if(t1==0){
temp[0]=arg[0][0];
for (j=0;j<4;j++) {
arg[0][j]=arg[0][j]/temp[0];
}
for (j=3;j>=0;j--) {
    arg[1][j]=arg[1][j]-arg[1][0]*arg[0][j];
    arg[2][j]=arg[2][j]-arg[2][0]*arg[0][j];
}
}
if(arg[1][1]==0){
    if(arg[2][1]!=0){
    for (j=0;j<4;j++) {
    temp2[j]=arg[2][j];
    arg[2][j]=arg[1][j];
    arg[1][j]=temp2[j];
    }
    }
    else{
        t2=1;
    }
}
if(t2==0){
temp[1]=arg[1][1];
for (j=0;j<4;j++) {
arg[1][j]=arg[1][j]/temp[1];
}
for (j=3;j>=0;j--) {
    arg[0][j]=arg[0][j]-arg[0][1]*arg[1][j];
    arg[2][j]=arg[2][j]-arg[2][1]*arg[1][j];
}
}
if(arg[2][2]==0){
        t3=1;
   
}
if(t3==0){
temp[2]=arg[2][2];
for (j=0;j<4;j++) {
arg[2][j]=arg[2][j]/temp[2];
}
for (j=3;j>=0;j--) {
    arg[0][j]=arg[0][j]-arg[0][2]*arg[2][j];
    arg[1][j]=arg[1][j]-arg[1][2]*arg[2][j];
}
}
printf("the solution is x,y,z = ");
if(t1==1 || t2==1 || t3==1){
printf("not single solution");
}
else{
    for (j=0;j<3;j++) {
    printf("%.3lf ,",arg[j][3]);
}
}
printf("\n");
return(0);
}

此文章被评分,最近评分记录
财富:50 (by codeboy) | 理由: 不错...希望您能继续努力喔~^^


献花 x0 回到顶端 [1 楼] From:台湾教育部 | Posted:2005-06-22 15:14 |
唐老鸭
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x230
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

用二维阵列或用串列结构去写.....
用阵列的写法会比较简单....


没东西可以抓
献花 x1 回到顶端 [2 楼] From:美国 | Posted:2005-05-28 15:49 |
allenmail 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

可以请楼上大大给我详细的程式码吗?
因为我不太会写
麻烦你啰


献花 x0 回到顶端 [3 楼] From:台湾教育部 | Posted:2005-05-29 15:07 |
唐老鸭
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x230
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用allenmail于2005-05-29 15:07发表的 :
可以请楼上大大给我详细的程式码吗?
因为我不太会写
麻烦你啰

因为你的题目还算有趣....
所以帮你写了部分的程式....
主要的消去法已经帮你写好了...
剩下就是判断你题目的解....
我是依照你的题目来写的....
所以这题的答案是无解....
后面的判断写法很简单...
就留给你自己写啰....

PS.//测试宣告和//进度测试的回圈你可以杀掉...我只是测试用的...记的自己把< i >改成[ i ]....

复制程式
#include <iostream.h>
#include <iomanip.h>

void main()
{
       int i,j,k;
       float temp;
       float arg[3][3] = {{1,2,1},{2,1,-1},{-1,1,2}};
       float sol[3] = {4,-1,3};
       
       //测试宣告
                for (i=0;i<3;i++)
       {
          for (j=0;j<3;j++)
          {
                 cout<<setw(4)<<arg[i][j];
          }
          cout<<setw(4)<<sol[i]<<endl;
       }

       //主要演算法
       for (i=0;i<3;i++)
       {
          for (j=0;j<3;j++)
          {
             if (i!=j)
                {
                   temp = arg[i][i] / arg[j][i];
                                            
                      for (k=0;k<3;k++)
                      {
                             arg[j][k] *= temp;
                             arg[j][k] = arg[i][k] -arg[j][k];
                      }
                      sol[j] *= temp;
                   sol[j] = sol[i] - sol[j];
                
                }
          }
          
          //进度测试
          cout<<endl<<endl;
          for (int x=0;x<3;x++)
          {
                   for(int y=0;y<3;y++)
                 {
                        cout<<setw(6)<<arg[x][y];
                 }
              cout<<setw(6)<<sol[x]<<endl;
          }
       }
               //这边加入你判断的部分
}



没东西可以抓
献花 x2 回到顶端 [4 楼] From:美国 | Posted:2005-05-29 17:48 |
allenmail 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

嗯嗯
谢谢你的热情分享
把我最想要的消去法给写了出来
送你一朵花~~
当作答谢
以后有机会再请教你啰!


献花 x0 回到顶端 [5 楼] From:台湾教育部 | Posted:2005-05-30 03:54 |
allenmail 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

当然我也希望有其他大大能有不同的写法
多多益善嘛
哈~


献花 x0 回到顶端 [6 楼] From:台湾教育部 | Posted:2005-05-30 03:56 |
jlookes
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x1
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

大大你好 小弟最近因作业要求需要用到这样的程式

但我试过

X+Y+Z=3
2X+2Y+2Z=6
3X+3Y+3Z=9

答案应该是 X=1 Y=1 Z=1
但答案显示是 not single solution
想请教问题出在哪?


献花 x0 回到顶端 [7 楼] From:台湾 | Posted:2007-12-03 03:11 |
a258456
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

这题是无解喔


献花 x0 回到顶端 [8 楼] From:台湾教育部 | Posted:2011-03-20 23:02 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.020361 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言