Not homework, I do this for fun, but sometimes it doesn't turn out like I want. I'm going to look over the changes you made, and learn from my mistake Thank you jim mcnamara.
By the way, it's most likely that I would make some mistakes on the sorting algorithm.
To sort 2 strings, I have to break down intro chars every string and compare the 2 chars?
String 1: abc
String 2: abd
a==a, b==b ,c!=d, resuts string 1<string 2. Something like that?
---------- Post updated at 10:39 AM ---------- Previous update was at 07:24 AM ----------
I made a sorting algorithm for 2 strings:
//sort ascending two strings
#include <stdio.h>
int main()
{
char a[10],b[10];
char s1,s2;
int i=0;
printf("First string:"); scanf("%s",&a);
printf("Second string:");scanf("%s",&b);
printf("\n");
printf("String 1:%s\n",a);
printf("String2:%s\n\n",b);
printf("Ascending order:\n");
do
{
s1=a;
s2=b;
i++;
}
while (s1==s2);
if (s1<s2)
{
printf("%s ",a);
printf("%s",b);
}
else
{
printf("%s ",b);
printf("%s",a);
}
printf("\n\n");
return 0;
}
Then I tryed to apply it to my problem.
//sort ascending n strings
#include <stdio.h>
int main(int argc, char **argv) //why int argc, char **argv ?
{
int n=0,
i=0,
j=0,
l=0;
char s1,s2;
char a[20][80]={0x0}; //what does {0x0} means?
char aux[80];
printf("How many strings?");
scanf("%d",&n);
for (i=1;i<=n && i < 20;i++)
{
printf("a[%d]=",i);
scanf("%s", a);
}
printf("\n");
for (j=1;j<=n && j < 20;j++)
printf("%s\n",a[j]);
for (i=1;i<=n-1 && i<20;i++) //a and a[i+1] so i goes to i<=n-1 ?
{
do
{
s1=a[l];
s2=a[i+1][l];
l++;
}
while(s1==s2);
if (s1<s2)
{
aux=a; //invalid array assignment
a=a[i+1]; //invalid array assignment
a[i+1]=aux; //invalid array assignment
}
}
for (j=1;j<=n && j < 20;j++)
printf("%s\n",a[j]);
return 0;
}
It has 3 errors. I declared wrong the aux variable, yes? How can I interchange the 2 strings compared?