关于满足求和的数字的配对
例如
输入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
是这样个大概思路吗,我还没学会怎么多行分别输出,有朋友帮解答么,谢谢了
[解决办法]
#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]); } }}
[解决办法]
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'这是把字符转换成对应的整数