首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于满足求和的数字的配对解决方案

2012-03-07 
关于满足求和的数字的配对例如输入1,3,4,5,6,710/*分号后面的10表示数组的和*/输出就是3,7;4,6;这个思路

关于满足求和的数字的配对
例如
输入1,3,4,5,6,7;10 /*分号后面的10表示数组的和*/
输出就是3,7;4,6;

这个思路看我说下啊。多行显示输出。

for(i=1,i!=0,i++);

for(j=i+1,j!=0,j++);

if(j=";")
break; /*分别表示两个相加的数字,i从第一位检索,j从i的后一位一直到末尾,遇到“;"结束*/

getline(k=1,k>0,k++) /*表示读取行*/

while((ch[i]+ch[j])=ch[最后一个数字])
print(ch[i],",",ch[j],";",ch[最后一位数])
{if ((ch[i]+ch[j])!=ch[最后一个数字])
continue;

if(NULL)
print("NULL")
if('/n')
k+1;

return


是这样个大概思路吗,我还没学会怎么多行分别输出,有朋友帮解答么,谢谢了


[解决办法]

C/C++ code
#include <stdio.h>FILE *stream;#define MAX_LINE 100void main(){    char buf[128]={0};    int i = 0,j = 0,k = 0;    int num[32]={0};    stream = fopen( "data.txt", "r" );//打开文件    if( stream == NULL )        printf( "The file fscanf.out was not opened\n" );    else    {        /* Read data back from file: */        while(fgets(buf, MAX_LINE, stream) != NULL)        {            for (i=0;buf[i]!='\0';i++)            {                if(buf[i] >= '0' && buf[i] <= '9')                {                    num[k] = num[k]*10 + buf[i] - '0';                }                else                {                    k++;                }            }        }        /* Output data read: */         fclose(stream);    }     for (i=0;i<k;i++)    {        for (j=i+1;j<k;j++)        {            if (num[i] + num[j] == num[k])                printf("%d,%d;\n", num[i], num[j]);        }    }}
[解决办法]
C/C++ code
 int num[32]={0};char buf[128]={0};//这两句是用来把数组置空的if(buf[i] >= '0' && buf[i] <= '9')//这句是因为只有数字才有用num[k] = num[k]*10 + buf[i] - '0';//buf[i] - '0'这是把字符转换成对应的整数 

热点排行